blob: 5115f303eb3e52159135f100d5f4c3d595675bea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
#!/usr/bin/env python3
def number(Model):
prods = []
number_expand_arg1 = Model.productionstring(
name="number_expand_arg1",
string="""
=g>
isa math_goal
arg1 =num
ones1 None
expand_slot None
?retrieval>
state free
buffer empty
==>
=g>
isa math_goal
expand_slot arg1
+retrieval>
isa number
number =num
"""
)
prods.append(number_expand_arg1)
number_expand_arg1_done = Model.productionstring(
name="number_expand_arg1_done",
string="""
=g>
isa math_goal
expand_slot arg1
arg1 =num
=retrieval>
isa number
number =num
ones =one
tens =ten
hundreds =hun
==>
=g>
isa math_goal
expand_slot None
ones1 =one
tens1 =ten
hundreds1 =hun
~retrieval>
"""
)
prods.append(number_expand_arg1_done)
number_expand_arg2 = Model.productionstring(
name="number_expand_arg2",
string="""
=g>
isa math_goal
arg2 =num
ones2 None
expand_slot None
?retrieval>
state free
buffer empty
==>
=g>
isa math_goal
expand_slot arg2
+retrieval>
isa number
number =num
"""
)
prods.append(number_expand_arg2)
number_expand_arg2_done = Model.productionstring(
name="number_expand_arg2_done",
string="""
=g>
isa math_goal
expand_slot arg2
arg2 =num
=retrieval>
isa number
number =num
ones =one
tens =ten
hundreds =hun
==>
=g>
isa math_goal
expand_slot None
ones2 =one
tens2 =ten
hundreds2 =hun
~retrieval>
"""
)
prods.append(number_expand_arg2_done)
number_contract_result = Model.productionstring(
name="number_contract_result",
string="""
=g>
isa math_goal
result None
ones_ans ~None
tens_ans ~None
hundreds_ans ~None
hundreds_ans ~busy
ones_ans =ones
tens_ans =tens
hundreds_ans =huns
?retrieval>
state free
==>
=g>
isa math_goal
expand_slot result
+retrieval>
isa number
ones =ones
tens =tens
hundreds =huns
"""
)
prods.append(number_contract_result)
number_contract_result_done = Model.productionstring(
name="number_contract_result_done",
string="""
=g>
isa math_goal
expand_slot result
result None
ones_ans =ones
tens_ans =tens
hundreds_ans =huns
=retrieval>
isa number
number =num
ones =ones
tens =tens
hundreds =huns
==>
=g>
isa math_goal
result =num
expand_slot None
~retrieval>
"""
)
prods.append(number_contract_result_done)
return prods
|