#!/usr/bin/env python3 def greater_than(Model): prods = [] greater_done = Model.productionstring( name="greater_done", string=""" =g> isa math_goal op greater_done result ~None result =result arg1 =arg1 arg2 =arg2 ==> =g> isa math_goal op done +imaginal> isa math_op op greater result =result arg1 =arg1 arg2 =arg2 """ ) arg1_greater = Model.productionstring( name="arg1_greater", string=""" =g> isa math_goal op greater_arg1 hundreds1 =hun1 tens1 =ten1 ones1 =one1 ==> =g> isa math_goal op greater_done hundreds_ans =hun1 tens_ans =ten1 ones_ans =one1 """, ) prods.append(arg1_greater) arg2_greater = Model.productionstring( name="arg2_greater", string=""" =g> isa math_goal op greater_arg2 hundreds2 =hun2 tens2 =ten2 ones2 =one2 ==> =g> isa math_goal op greater_done hundreds_ans =hun2 tens_ans =ten2 ones_ans =one2 """, ) prods.append(arg2_greater) start_greater_hun = Model.productionstring( name="start_greater_hun", string=""" =g> isa math_goal op greater hundreds1 =hun1 hundreds2 ~=hun1 hundreds2 =hun2 hundreds_ans None ?retrieval> state free ==> =g> isa math_goal +retrieval> isa math_op op greater arg1 =hun1 arg2 =hun2 """, ) prods.append(start_greater_hun) start_greater_ten = Model.productionstring( name="start_greater_ten", string=""" =g> isa math_goal op greater hundreds1 =hun1 hundreds2 =hun1 tens1 =ten1 tens2 ~=ten1 tens2 =ten2 ?retrieval> state free ==> =g> isa math_goal +retrieval> isa math_op op greater arg1 =ten1 arg2 =ten2 """, ) prods.append(start_greater_ten) start_greater_one = Model.productionstring( name="start_greater_one", string=""" =g> isa math_goal op greater hundreds1 =hun1 hundreds2 =hun1 tens1 =ten1 tens2 =ten1 ones1 =one1 ones2 ~=one1 ones2 =one2 ?retrieval> state free ==> =g> isa math_goal +retrieval> isa math_op op greater arg1 =one1 arg2 =one2 """, ) prods.append(start_greater_one) comp_result_hun_greater_arg1 = Model.productionstring( name="comp_result_hun_greater_arg1", string=""" =g> isa math_goal op greater hundreds1 =hun1 hundreds2 =hun2 =retrieval> isa math_op op greater arg1 =hun1 arg2 =hun2 result =hun1 ==> =g> isa math_goal op greater_arg1 """, ) prods.append(comp_result_hun_greater_arg1) comp_result_hun_greater_arg2 = Model.productionstring( name="comp_result_hun_greater_arg2", string=""" =g> isa math_goal op greater hundreds1 =hun1 hundreds2 =hun2 =retrieval> isa math_op op greater arg1 =hun1 arg2 =hun2 result =hun2 ==> =g> isa math_goal op greater_arg2 """, ) prods.append(comp_result_hun_greater_arg2) comp_result_ten_greater_arg1 = Model.productionstring( name="comp_result_ten_greater_arg1", string=""" =g> isa math_goal op greater tens1 =ten1 tens2 =ten2 =retrieval> isa math_op op greater arg1 =ten1 arg2 =ten2 result =ten1 ==> =g> isa math_goal op greater_arg1 """, ) prods.append(comp_result_ten_greater_arg1) comp_result_ten_greater_arg2 = Model.productionstring( name="comp_result_ten_greater_arg2", string=""" =g> isa math_goal op greater tens1 =ten1 tens2 =ten2 =retrieval> isa math_op op greater arg1 =ten1 arg2 =ten2 result =ten2 ==> =g> isa math_goal op greater_arg2 """, ) prods.append(comp_result_ten_greater_arg2) comp_result_one_greater_arg1 = Model.productionstring( name="comp_result_one_greater_arg1", string=""" =g> isa math_goal op greater ones1 =one1 ones2 =one2 =retrieval> isa math_op op greater arg1 =one1 arg2 =one2 result =one1 ==> =g> isa math_goal op greater_arg1 """, ) prods.append(comp_result_one_greater_arg1) comp_result_one_greater_arg2 = Model.productionstring( name="comp_result_one_greater_arg2", string=""" =g> isa math_goal op greater ones1 =one1 ones2 =one2 =retrieval> isa math_op op greater arg1 =one1 arg2 =one2 result =one2 ==> =g> isa math_goal op greater_arg2 """, ) prods.append(comp_result_one_greater_arg2) return prods def less_than(Model): prods = [] less_done = Model.productionstring( name="less_done", string=""" =g> isa math_goal op less_done result ~None result =result arg1 =arg1 arg2 =arg2 ==> =g> isa math_goal op done +imaginal> isa math_op op less result =result arg1 =arg1 arg2 =arg2 """ ) arg1_less = Model.productionstring( name="arg1_less", string=""" =g> isa math_goal task arg1 =imaginal> isa math_op op less hundreds1 =hun1 tens1 =ten1 ones1 =one1 ==> =g> isa math_goal task done =imaginal> isa math_op hundreds_ans =hun1 tens_ans =ten1 ones_ans =one1 """, ) prods.append(arg1_less) arg2_less = Model.productionstring( name="arg2_less", string=""" =g> isa math_goal task arg2 =imaginal> isa math_op op less hundreds2 =hun2 tens2 =ten2 ones2 =one2 ==> =g> isa math_goal task done =imaginal> isa math_op hundreds_ans =hun2 tens_ans =ten2 ones_ans =one2 """, ) prods.append(arg2_less) start_less_hun = Model.productionstring( name="start_less_hun", string=""" =g> isa math_goal task calc =imaginal> isa math_op op less hundreds1 =hun1 hundreds2 ~=hun1 hundreds2 =hun2 ?retrieval> state free ==> =g> isa math_goal task comp +retrieval> isa math_op op greater arg1 =hun1 arg2 =hun2 """, ) prods.append(start_less_hun) start_less_ten = Model.productionstring( name="start_less_ten", string=""" =g> isa math_goal task calc =imaginal> isa math_op op less hundreds1 =hun1 hundreds2 =hun1 tens1 =ten1 tens2 ~=ten1 tens2 =ten2 ?retrieval> state free ==> =g> isa math_goal task comp +retrieval> isa math_op op greater arg1 =ten1 arg2 =ten2 """, ) prods.append(start_less_ten) start_less_one = Model.productionstring( name="start_less_one", string=""" =g> isa math_goal task calc =imaginal> isa math_op op less hundreds1 =hun1 hundreds2 =hun1 tens1 =ten1 tens2 =ten1 ones1 =one1 ones2 ~=one1 ones2 =one2 ?retrieval> state free ==> =g> isa math_goal task comp +retrieval> isa math_op op greater arg1 =one1 arg2 =one2 """, ) prods.append(start_less_one) comp_result_hun_less_arg2 = Model.productionstring( name="comp_result_hun_less_arg2", string=""" =g> isa math_goal task comp =imaginal> isa math_op op less hundreds1 =hun1 hundreds2 =hun2 =retrieval> isa math_op op greater arg1 =hun1 arg2 =hun2 result =hun1 ==> =g> isa math_goal task arg2 """, ) prods.append(comp_result_hun_less_arg2) comp_result_hun_less_arg1 = Model.productionstring( name="comp_result_hun_less", string=""" =g> isa math_goal task comp =imaginal> isa math_op op less hundreds1 =hun1 hundreds2 =hun2 =retrieval> isa math_op op greater arg1 =hun1 arg2 =hun2 result =hun2 ==> =g> isa math_goal task arg1 """, ) prods.append(comp_result_hun_less_arg1) comp_result_ten_less_arg2 = Model.productionstring( name="comp_result_ten_less_arg2", string=""" =g> isa math_goal task comp =imaginal> isa math_op op less tens1 =ten1 tens2 =ten2 =retrieval> isa math_op op greater arg1 =ten1 arg2 =ten2 result =ten1 ==> =g> isa math_goal task arg2 """, ) prods.append(comp_result_ten_less_arg2) comp_result_ten_lesser_arg1 = Model.productionstring( name="comp_result_ten_lesser_arg1", string=""" =g> isa math_goal task comp =imaginal> isa math_op op less tens1 =ten1 tens2 =ten2 =retrieval> isa math_op op greater arg1 =ten1 arg2 =ten2 result =ten2 ==> =g> isa math_goal task arg1 """, ) prods.append(comp_result_ten_lesser_arg1) comp_result_one_less_arg2 = Model.productionstring( name="comp_result_one_less_arg2", string=""" =g> isa math_goal task comp =imaginal> isa math_op op less ones1 =one1 ones2 =one2 =retrieval> isa math_op op greater arg1 =one1 arg2 =one2 result =one1 ==> =g> isa math_goal task arg2 """, ) prods.append(comp_result_one_less_arg2) comp_result_one_lesser_arg1 = Model.productionstring( name="comp_result_one_lesser_arg1", string=""" =g> isa math_goal task comp =imaginal> isa math_op op less ones1 =one1 ones2 =one2 =retrieval> isa math_op op greater arg1 =one1 arg2 =one2 result =one2 ==> =g> isa math_goal task arg1 """, ) prods.append(comp_result_one_lesser_arg1) return prods