&program;; &subsumption;; 売り主 =< 人;; 買い主 =< 人;; 口述 =< 同意する旨を示す行為;; % 追加 配達 =< 同意する旨を示す行為;; % 追加 &rule;; % 第14条(1) def::申込[順番=0]/[申込者=A, 被申込者=B] <= fact:申入れ/[契約を締結せんとする提案=yes, 対象が一又は複数の特定の者に向けられている=yes, 内容が十分明確である=yes, 承諾があった場合には拘束されるとの 申込者の意思が示されている=yes, 行為者=A, 受取人=B];; fact::申入れ/[内容が十分明確である=yes] <= fact:申入れ/[物品を示す=yes, 数量及び代金=明示的に定めている];; fact::申入れ/[内容が十分明確である=yes] <= fact:申入れ/[物品を示す=yes, 数量及び代金=黙示的に定めている];; fact::申入れ/[内容が十分明確である=yes] <= fact:申入れ/[物品を示す=yes, 数量及び代金=決定方法を規定している];; % 第15条(1) effect_def::申込[順番=N]/[発生日時=S,申込者=A, 被申込者=B] <= def:申込[順番=N]/[申込者=A, 被申込者=B], def:到達[順番=N]/[到達日時=S];; % 第18条(1) def::承諾[順番=N] <= % effect_def:申込[順番=N-1]/[被申込者=A], arith:dif_one(N0,N), effect_def:申込[順番=N0]/[被申込者=A], fact:回答[順番=N]/[行為 -> 同意する旨を示す行為, 行為者=A, 変更を含んでいる=no];; % 追加 % 第18条(2) effect_def::承諾[順番=N]/[発生日時=S] <= def:承諾[順番=N], def:到達[順番=N]/[kind -> 期間内, 到達日時=S];; % 第19条(1) def::申込[順番=N]/[申込者=A, 被申込者=B] <= % effect_def:申込[順番=N-1]/[被申込者=A], arith:dif_one(N0,N), effect_def:申込[順番=N0]/[被申込者=A], fact:回答[順番=N]/[変更を含んでいる=yes,行為者=A,受取人=B];; % 第23条 def::契約[順番=N] <= effect_def:承諾[順番=N];; % 第24条 def::到達[順番=N]/[到達日時=T] <= fact:回答[順番=N]/[行為=口述, 口述日時=T];; def::到達[順番=N]/[到達日時=T] <= fact:回答[順番=N]/[行為=配達[場所=個人], 配達日時=T];; def::到達[順番=N]/[到達日時=T] <= fact:回答[順番=N]/[受取人=R, 行為=配達[場所=営業所], 配達日時=T], fact:R/[営業所又は郵便送付先あり=yes]||{R =< 人};; def::到達[順番=N]/[到達日時=T] <= fact:回答[順番=N]/[受取人=R, 行為=配達[場所=郵便送付先], 配達日時=T], fact:R/[営業所又は郵便送付先あり=yes]||{R =< 人};; def::到達[順番=N]/[到達日時=T] <= fact:回答[順番=N]/[受取人=R, 行為=配達[場所=常居所], 配達日時=T], fact:R/[営業所又は郵便送付先あり=no]||{R =< 人};; % 申入れ def::到達[順番=0]/[到達日時=T] <= fact:申入れ/[行為=口述, 口述日時=T];; def::到達[順番=0]/[到達日時=T] <= fact:申入れ/[行為=配達[場所=個人], 配達日時=T];; def::到達[順番=0]/[到達日時=T] <= fact:申入れ/[受取人=R, 行為=配達[場所=営業所], 配達日時=T], fact:R/[営業所又は郵便送付先あり=yes]||{R =< 人};; def::到達[順番=0]/[到達日時=T] <= fact:申入れ/[受取人=R, 行為=配達[場所=郵便送付先], 配達日時=T], fact:R/[営業所又は郵便送付先あり=yes]||{R =< 人};; def::到達[順番=0]/[到達日時=T] <= fact:申入れ/[受取人=R, 行為=配達[場所=常居所], 配達日時=T], fact:R/[営業所又は郵便送付先あり=no]||{R =< 人};; arith::dif_one(0,1);; arith::dif_one(1,2);; arith::dif_one(2,3);; arith::dif_one(3,4);; fact::買い主;; fact::売り主;; fact::申入れ;; fact::回答[順番=1];; fact::回答[順番=2];; fact::回答[順番=3];; &end.