diff options
Diffstat (limited to 'modeling/prod_vis.py')
-rw-r--r-- | modeling/prod_vis.py | 1240 |
1 files changed, 1214 insertions, 26 deletions
diff --git a/modeling/prod_vis.py b/modeling/prod_vis.py index 31e53ca..bc1f0b4 100644 --- a/modeling/prod_vis.py +++ b/modeling/prod_vis.py @@ -1,10 +1,11 @@ #!/usr/bin/env python3 + def procedures(Model): prods = [] vis_find_arg1_header = Model.productionstring( - name = "vis_find_arg1_header", + name="vis_find_arg1_header", string=""" =g> isa math_goal @@ -19,17 +20,19 @@ def procedures(Model): +visual_location> isa _visuallocation value =var - """ + """, ) # start value index search vis_find_arg1_header_done = Model.productionstring( - name = "vis_find_arg1_header_done", + name="vis_find_arg1_header_done", string=""" =g> isa math_goal op find_arg1_header arg1 =var + arg1_idx ~max + arg1_idx ~min arg1_idx =idx vis_counter ~=idx vis_counter =vis_counter @@ -51,11 +54,11 @@ def procedures(Model): +retrieval> isa number number 1 - """ + """, ) vis_find_arg1_search_step1 = Model.productionstring( - name = "vis_find_arg1_search_step1", + name="vis_find_arg1_search_step1", string=""" =g> isa math_goal @@ -87,11 +90,11 @@ def procedures(Model): +retrieval> isa number number =next - """ + """, ) vis_find_arg1_search_step2 = Model.productionstring( - name = "vis_find_arg1_search_step2", + name="vis_find_arg1_search_step2", string=""" =g> isa math_goal @@ -123,11 +126,11 @@ def procedures(Model): +retrieval> isa number number =next - """ + """, ) vis_find_arg1_search_step3 = Model.productionstring( - name = "vis_find_arg1_search_step3", + name="vis_find_arg1_search_step3", string=""" =g> isa math_goal @@ -159,7 +162,7 @@ def procedures(Model): +retrieval> isa number number =next - """ + """, ) vis_find_arg1_search_done = Model.productionstring( @@ -185,7 +188,7 @@ def procedures(Model): cmd move_attention screen_pos =visual_location ~visual_location> - """ + """, ) vis_find_arg1_replace = Model.productionstring( @@ -206,12 +209,605 @@ def procedures(Model): arg1 =arg1 vis_counter None ~visual> - """ + """, + ) + + vis_max_arg1_header_done = Model.productionstring( + name="vis_max_arg1_header_done", + string=""" + =g> + isa math_goal + op find_arg1_header + arg1 =var + arg1_idx max + vis_counter =vis_counter + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg1_attend + vis_counter 1 + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y closest + ~retrieval> + """, + ) + + vis_max_arg1_search_step1_attend = Model.productionstring( + name="vis_max_arg1_search_step1_attend", + string=""" + =g> + isa math_goal + op max_arg1_attend + arg1_idx max + vis_counter 1 + =visual_location> + isa _visuallocation + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg1_encode + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg1_search_step1_encode = Model.productionstring( + name="vis_max_arg1_search_step1_encode", + string=""" + =g> + isa math_goal + op max_arg1_encode + arg1_idx max + vis_counter 1 + =visual_location> + isa _visuallocation + screen_x =screen_x + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg1_attend + vis_counter 2 + arg1 =value + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 300 + """, ) + vis_max_arg1_search_step2_attend = Model.productionstring( + name="vis_max_arg1_search_step2_attend", + string=""" + =g> + isa math_goal + op max_arg1_attend + arg1_idx max + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg1_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg1_search_step2_check = Model.productionstring( + name="vis_max_arg1_search_step2_check", + string=""" + =g> + isa math_goal + op max_arg1_check + arg1 =arg1 + arg1_idx max + vis_counter 2 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg1_encode + +retrieval> + isa math_op + op greater + arg1 =arg1 + arg2 =value + """, + ) + vis_max_arg1_search_step2_encode = Model.productionstring( + name="vis_max_arg1_search_step2_encode", + string=""" + =g> + isa math_goal + op max_arg1_encode + arg1_idx max + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op greater + result =result + ==> + =g> + isa math_goal + op max_arg1_attend + vis_counter 3 + arg1 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 400 + ~retrieval> + """, + ) + vis_max_arg1_search_step3_attend = Model.productionstring( + name="vis_max_arg1_search_step3_attend", + string=""" + =g> + isa math_goal + op max_arg1_attend + arg1_idx max + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg1_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg1_search_step3_check = Model.productionstring( + name="vis_max_arg1_search_step3_check", + string=""" + =g> + isa math_goal + op max_arg1_check + arg1 =arg1 + arg1_idx max + vis_counter 3 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg1_encode + +retrieval> + isa math_op + op greater + arg1 =arg1 + arg2 =value + """, + ) + vis_max_arg1_search_step3_encode = Model.productionstring( + name="vis_max_arg1_search_step3_encode", + string=""" + =g> + isa math_goal + op max_arg1_encode + arg1_idx max + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op greater + result =result + ==> + =g> + isa math_goal + op max_arg1_attend + vis_counter 4 + arg1 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 500 + ~retrieval> + """, + ) + vis_max_arg1_search_step4_attend = Model.productionstring( + name="vis_max_arg1_search_step4_attend", + string=""" + =g> + isa math_goal + op max_arg1_attend + arg1_idx max + vis_counter 4 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg1_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg1_search_step4_check = Model.productionstring( + name="vis_max_arg1_search_step4_check", + string=""" + =g> + isa math_goal + op max_arg1_check + arg1 =arg1 + arg1_idx max + vis_counter 4 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg1_encode + +retrieval> + isa math_op + op greater + arg1 =arg1 + arg2 =value + """, + ) + vis_max_arg1_search_step4_encode = Model.productionstring( + name="vis_max_arg1_search_step4_encode", + string=""" + =g> + isa math_goal + op max_arg1_encode + arg1_idx max + vis_counter 4 + =retrieval> + isa math_op + op greater + result =result + ==> + =g> + isa math_goal + op check_if_number_arg2_start + arg1 =result + vis_counter None + ~visual> + ~retrieval> + """, + ) + + vis_min_arg1_header_done = Model.productionstring( + name="vis_min_arg1_header_done", + string=""" + =g> + isa math_goal + op find_arg1_header + arg1 =var + arg1_idx min + vis_counter =vis_counter + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg1_attend + vis_counter 1 + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y closest + ~retrieval> + """, + ) + + vis_min_arg1_search_step1_attend = Model.productionstring( + name="vis_min_arg1_search_step1_attend", + string=""" + =g> + isa math_goal + op min_arg1_attend + arg1_idx min + vis_counter 1 + =visual_location> + isa _visuallocation + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg1_encode + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg1_search_step1_encode = Model.productionstring( + name="vis_min_arg1_search_step1_encode", + string=""" + =g> + isa math_goal + op min_arg1_encode + arg1_idx min + vis_counter 1 + =visual_location> + isa _visuallocation + screen_x =screen_x + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg1_attend + vis_counter 2 + arg1 =value + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 300 + """, + ) + + vis_min_arg1_search_step2_attend = Model.productionstring( + name="vis_min_arg1_search_step2_attend", + string=""" + =g> + isa math_goal + op min_arg1_attend + arg1_idx min + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg1_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg1_search_step2_check = Model.productionstring( + name="vis_min_arg1_search_step2_check", + string=""" + =g> + isa math_goal + op min_arg1_check + arg1 =arg1 + arg1_idx min + vis_counter 2 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg1_encode + +retrieval> + isa math_op + op lesser + arg1 =arg1 + arg2 =value + """, + ) + vis_min_arg1_search_step2_encode = Model.productionstring( + name="vis_min_arg1_search_step2_encode", + string=""" + =g> + isa math_goal + op min_arg1_encode + arg1_idx min + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op lesser + result =result + ==> + =g> + isa math_goal + op min_arg1_attend + vis_counter 3 + arg1 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 400 + ~retrieval> + """, + ) + vis_min_arg1_search_step3_attend = Model.productionstring( + name="vis_min_arg1_search_step3_attend", + string=""" + =g> + isa math_goal + op min_arg1_attend + arg1_idx min + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg1_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg1_search_step3_check = Model.productionstring( + name="vis_min_arg1_search_step3_check", + string=""" + =g> + isa math_goal + op min_arg1_check + arg1 =arg1 + arg1_idx min + vis_counter 3 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg1_encode + +retrieval> + isa math_op + op lesser + arg1 =arg1 + arg2 =value + """, + ) + vis_min_arg1_search_step3_encode = Model.productionstring( + name="vis_min_arg1_search_step3_encode", + string=""" + =g> + isa math_goal + op min_arg1_encode + arg1_idx min + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op lesser + result =result + ==> + =g> + isa math_goal + op min_arg1_attend + vis_counter 4 + arg1 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 500 + ~retrieval> + """, + ) + vis_min_arg1_search_step4_attend = Model.productionstring( + name="vis_min_arg1_search_step4_attend", + string=""" + =g> + isa math_goal + op min_arg1_attend + arg1_idx min + vis_counter 4 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg1_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg1_search_step4_check = Model.productionstring( + name="vis_min_arg1_search_step4_check", + string=""" + =g> + isa math_goal + op min_arg1_check + arg1 =arg1 + arg1_idx min + vis_counter 4 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg1_encode + +retrieval> + isa math_op + op lesser + arg1 =arg1 + arg2 =value + """, + ) + vis_min_arg1_search_step4_encode = Model.productionstring( + name="vis_min_arg1_search_step4_encode", + string=""" + =g> + isa math_goal + op min_arg1_encode + arg1_idx min + vis_counter 4 + =retrieval> + isa math_op + op lesser + result =result + ==> + =g> + isa math_goal + op check_if_number_arg2_start + arg1 =result + vis_counter None + ~visual> + ~retrieval> + """, + ) vis_find_arg2_header = Model.productionstring( - name = "vis_find_arg2_header", + name="vis_find_arg2_header", string=""" =g> isa math_goal @@ -226,18 +822,20 @@ def procedures(Model): +visual_location> isa _visuallocation value =var - """ + """, ) # start value index search vis_find_arg2_header_done = Model.productionstring( - name = "vis_find_arg2_header_done", + name="vis_find_arg2_header_done", string=""" =g> isa math_goal op find_arg2_header arg2 =var arg2_idx =idx + arg2_idx ~min + arg2_idx ~max vis_counter ~=idx vis_counter =vis_counter =visual_location> @@ -259,11 +857,11 @@ def procedures(Model): +retrieval> isa number number 1 - """ + """, ) vis_find_arg2_search_step1 = Model.productionstring( - name = "vis_find_arg2_search_step1", + name="vis_find_arg2_search_step1", string=""" =g> isa math_goal @@ -295,11 +893,11 @@ def procedures(Model): +retrieval> isa number number =next - """ + """, ) vis_find_arg2_search_step2 = Model.productionstring( - name = "vis_find_arg2_search_step2", + name="vis_find_arg2_search_step2", string=""" =g> isa math_goal @@ -331,11 +929,11 @@ def procedures(Model): +retrieval> isa number number =next - """ + """, ) vis_find_arg2_search_step3 = Model.productionstring( - name = "vis_find_arg2_search_step3", + name="vis_find_arg2_search_step3", string=""" =g> isa math_goal @@ -367,10 +965,9 @@ def procedures(Model): +retrieval> isa number number =next - """ + """, ) - vis_find_arg2_search_done = Model.productionstring( name="vis_find_arg2_search_done", string=""" @@ -394,7 +991,7 @@ def procedures(Model): cmd move_attention screen_pos =visual_location ~visual_location> - """ + """, ) vis_find_arg2_replace = Model.productionstring( @@ -416,9 +1013,600 @@ def procedures(Model): vis_counter None ~visual> ~retrieval> - """ + """, ) + vis_max_arg2_header_done = Model.productionstring( + name="vis_max_arg2_header_done", + string=""" + =g> + isa math_goal + op find_arg2_header + arg2 =var + arg2_idx max + vis_counter =vis_counter + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg2_attend + vis_counter 1 + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y closest + ~retrieval> + """, + ) - return prods + vis_max_arg2_search_step1_attend = Model.productionstring( + name="vis_max_arg2_search_step1_attend", + string=""" + =g> + isa math_goal + op max_arg2_attend + arg2_idx max + vis_counter 1 + =visual_location> + isa _visuallocation + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg2_encode + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg2_search_step1_encode = Model.productionstring( + name="vis_max_arg2_search_step1_encode", + string=""" + =g> + isa math_goal + op max_arg2_encode + arg2_idx max + vis_counter 1 + =visual_location> + isa _visuallocation + screen_x =screen_x + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg2_attend + vis_counter 2 + arg2 =value + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 300 + """, + ) + vis_max_arg2_search_step2_attend = Model.productionstring( + name="vis_max_arg2_search_step2_attend", + string=""" + =g> + isa math_goal + op max_arg2_attend + arg2_idx max + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg2_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg2_search_step2_check = Model.productionstring( + name="vis_max_arg2_search_step2_check", + string=""" + =g> + isa math_goal + op max_arg2_check + arg2 =arg2 + arg2_idx max + vis_counter 2 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg2_encode + +retrieval> + isa math_op + op greater + arg1 =arg2 + arg2 =value + """, + ) + vis_max_arg2_search_step2_encode = Model.productionstring( + name="vis_max_arg2_search_step2_encode", + string=""" + =g> + isa math_goal + op max_arg2_encode + arg2_idx max + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op greater + result =result + ==> + =g> + isa math_goal + op max_arg2_attend + vis_counter 3 + arg2 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 400 + ~retrieval> + """, + ) + vis_max_arg2_search_step3_attend = Model.productionstring( + name="vis_max_arg2_search_step3_attend", + string=""" + =g> + isa math_goal + op max_arg2_attend + arg2_idx max + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg2_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg2_search_step3_check = Model.productionstring( + name="vis_max_arg2_search_step3_check", + string=""" + =g> + isa math_goal + op max_arg2_check + arg2 =arg2 + arg2_idx max + vis_counter 3 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg2_encode + +retrieval> + isa math_op + op greater + arg1 =arg2 + arg2 =value + """, + ) + vis_max_arg2_search_step3_encode = Model.productionstring( + name="vis_max_arg2_search_step3_encode", + string=""" + =g> + isa math_goal + op max_arg2_encode + arg2_idx max + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op greater + result =result + ==> + =g> + isa math_goal + op max_arg2_attend + vis_counter 4 + arg2 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 500 + ~retrieval> + """, + ) + vis_max_arg2_search_step4_attend = Model.productionstring( + name="vis_max_arg2_search_step4_attend", + string=""" + =g> + isa math_goal + op max_arg2_attend + arg2_idx max + vis_counter 4 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op max_arg2_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_max_arg2_search_step4_check = Model.productionstring( + name="vis_max_arg2_search_step4_check", + string=""" + =g> + isa math_goal + op max_arg2_check + arg2 =arg2 + arg2_idx max + vis_counter 4 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op max_arg2_encode + +retrieval> + isa math_op + op greater + arg1 =arg2 + arg2 =value + """, + ) + vis_max_arg2_search_step4_encode = Model.productionstring( + name="vis_max_arg2_search_step4_encode", + string=""" + =g> + isa math_goal + op max_arg2_encode + arg2_idx max + vis_counter 4 + =retrieval> + isa math_op + op greater + result =result + ==> + =g> + isa math_goal + op done + arg2 =result + vis_counter None + ~visual> + ~retrieval> + """, + ) + + vis_min_arg2_header_done = Model.productionstring( + name="vis_min_arg2_header_done", + string=""" + =g> + isa math_goal + op find_arg2_header + arg2 =var + arg2_idx min + vis_counter =vis_counter + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg2_attend + vis_counter 1 + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y closest + ~retrieval> + """, + ) + + vis_min_arg2_search_step1_attend = Model.productionstring( + name="vis_min_arg2_search_step1_attend", + string=""" + =g> + isa math_goal + op min_arg2_attend + arg2_idx min + vis_counter 1 + =visual_location> + isa _visuallocation + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg2_encode + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg2_search_step1_encode = Model.productionstring( + name="vis_min_arg2_search_step1_encode", + string=""" + =g> + isa math_goal + op min_arg2_encode + arg2_idx min + vis_counter 1 + =visual_location> + isa _visuallocation + screen_x =screen_x + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg2_attend + vis_counter 2 + arg2 =value + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 300 + """, + ) + + vis_min_arg2_search_step2_attend = Model.productionstring( + name="vis_min_arg2_search_step2_attend", + string=""" + =g> + isa math_goal + op min_arg2_attend + arg2_idx min + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg2_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg2_search_step2_check = Model.productionstring( + name="vis_min_arg2_search_step2_check", + string=""" + =g> + isa math_goal + op min_arg2_check + arg2 =arg2 + arg2_idx min + vis_counter 2 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg2_encode + +retrieval> + isa math_op + op lesser + arg1 =arg2 + arg2 =value + """, + ) + vis_min_arg2_search_step2_encode = Model.productionstring( + name="vis_min_arg2_search_step2_encode", + string=""" + =g> + isa math_goal + op min_arg2_encode + arg2_idx min + vis_counter 2 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op lesser + result =result + ==> + =g> + isa math_goal + op min_arg2_attend + vis_counter 3 + arg2 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 400 + ~retrieval> + """, + ) + vis_min_arg2_search_step3_attend = Model.productionstring( + name="vis_min_arg2_search_step3_attend", + string=""" + =g> + isa math_goal + op min_arg2_attend + arg2_idx min + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg2_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg2_search_step3_check = Model.productionstring( + name="vis_min_arg2_search_step3_check", + string=""" + =g> + isa math_goal + op min_arg2_check + arg2 =arg2 + arg2_idx min + vis_counter 3 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg2_encode + +retrieval> + isa math_op + op lesser + arg1 =arg2 + arg2 =value + """, + ) + vis_min_arg2_search_step3_encode = Model.productionstring( + name="vis_min_arg2_search_step3_encode", + string=""" + =g> + isa math_goal + op min_arg2_encode + arg2_idx min + vis_counter 3 + =visual_location> + isa _visuallocation + screen_x =screen_x + =retrieval> + isa math_op + op lesser + result =result + ==> + =g> + isa math_goal + op min_arg2_attend + vis_counter 4 + arg2 =result + +visual_location> + isa _visuallocation + screen_x =screen_x + screen_y 500 + ~retrieval> + """, + ) + vis_min_arg2_search_step4_attend = Model.productionstring( + name="vis_min_arg2_search_step4_attend", + string=""" + =g> + isa math_goal + op min_arg2_attend + arg2_idx min + vis_counter 4 + =visual_location> + isa _visuallocation + screen_x =screen_x + screen_y =screen_y + ?visual> + state free + ==> + =g> + isa math_goal + op min_arg2_check + +visual> + isa _visual + cmd move_attention + screen_pos =visual_location + """, + ) + vis_min_arg2_search_step4_check = Model.productionstring( + name="vis_min_arg2_search_step4_check", + string=""" + =g> + isa math_goal + op min_arg2_check + arg2 =arg2 + arg2_idx min + vis_counter 4 + =visual> + isa _visual + value =value + ==> + =g> + isa math_goal + op min_arg2_encode + +retrieval> + isa math_op + op lesser + arg1 =arg2 + arg2 =value + """, + ) + vis_min_arg2_search_step4_encode = Model.productionstring( + name="vis_min_arg2_search_step4_encode", + string=""" + =g> + isa math_goal + op min_arg2_encode + arg2_idx min + vis_counter 4 + =retrieval> + isa math_op + op lesser + result =result + ==> + =g> + isa math_goal + op done + arg2 =result + vis_counter None + ~visual> + ~retrieval> + """, + ) + return prods |