sp {arithmetic*propose*generate-facts
(state <s> ^name arithmetic
-^arithmetic.facts)
-->
(<s> ^operator <op> + =, >)
(<op> ^name generate-facts)
}
# comment out this rule (and all smem add commands
# in _firstload) to have a sub-goal store all these
# facts using rules
sp {arithmetic*apply*generate-facts*smem
(state <s> ^operator.name generate-facts
^fact-source smem)
-->
(<s> ^arithmetic.facts preloaded)
}
sp {arithmetic*apply*generate-facts*add*sub
(state <s> ^operator.name generate-facts
^fact-source wm)
-->
(<s> ^arithmetic.facts
<a01> <a02> <a03> <a04> <a05> <a06> <a07> <a08> <a09> <a00>
<a11> <a12> <a13> <a14> <a15> <a16> <a17> <a18> <a19> <a10>
<a21> <a22> <a23> <a24> <a25> <a26> <a27> <a28> <a29> <a20>
<a31> <a32> <a33> <a34> <a35> <a36> <a37> <a38> <a39> <a30>
<a41> <a42> <a43> <a44> <a45> <a46> <a47> <a48> <a49> <a40>
<a51> <a52> <a53> <a54> <a55> <a56> <a57> <a58> <a59> <a50>
<a61> <a62> <a63> <a64> <a65> <a66> <a67> <a68> <a69> <a60>
<a71> <a72> <a73> <a74> <a75> <a76> <a77> <a78> <a79> <a70>
<a81> <a82> <a83> <a84> <a85> <a86> <a87> <a88> <a89> <a80>
<a91> <a92> <a93> <a94> <a95> <a96> <a97> <a98> <a99> <a90>)
(<a00> ^digit1 0 ^digit2 0 ^sum 0 ^carry-borrow 0)
(<a01> ^digit1 0 ^digit2 1 ^sum 1 ^carry-borrow 0)
(<a02> ^digit1 0 ^digit2 2 ^sum 2 ^carry-borrow 0)
(<a03> ^digit1 0 ^digit2 3 ^sum 3 ^carry-borrow 0)
(<a04> ^digit1 0 ^digit2 4 ^sum 4 ^carry-borrow 0)
(<a05> ^digit1 0 ^digit2 5 ^sum 5 ^carry-borrow 0)
(<a06> ^digit1 0 ^digit2 6 ^sum 6 ^carry-borrow 0)
(<a07> ^digit1 0 ^digit2 7 ^sum 7 ^carry-borrow 0)
(<a08> ^digit1 0 ^digit2 8 ^sum 8 ^carry-borrow 0)
(<a09> ^digit1 0 ^digit2 9 ^sum 9 ^carry-borrow 0)
(<a10> ^digit1 1 ^digit2 0 ^sum 1 ^carry-borrow 0)
(<a11> ^digit1 1 ^digit2 1 ^sum 2 ^carry-borrow 0)
(<a12> ^digit1 1 ^digit2 2 ^sum 3 ^carry-borrow 0)
(<a13> ^digit1 1 ^digit2 3 ^sum 4 ^carry-borrow 0)
(<a14> ^digit1 1 ^digit2 4 ^sum 5 ^carry-borrow 0)
(<a15> ^digit1 1 ^digit2 5 ^sum 6 ^carry-borrow 0)
(<a16> ^digit1 1 ^digit2 6 ^sum 7 ^carry-borrow 0)
(<a17> ^digit1 1 ^digit2 7 ^sum 8 ^carry-borrow 0)
(<a18> ^digit1 1 ^digit2 8 ^sum 9 ^carry-borrow 0)
(<a19> ^digit1 1 ^digit2 9 ^sum 0 ^carry-borrow 1)
(<a20> ^digit1 2 ^digit2 0 ^sum 2 ^carry-borrow 0)
(<a21> ^digit1 2 ^digit2 1 ^sum 3 ^carry-borrow 0)
(<a22> ^digit1 2 ^digit2 2 ^sum 4 ^carry-borrow 0)
(<a23> ^digit1 2 ^digit2 3 ^sum 5 ^carry-borrow 0)
(<a24> ^digit1 2 ^digit2 4 ^sum 6 ^carry-borrow 0)
(<a25> ^digit1 2 ^digit2 5 ^sum 7 ^carry-borrow 0)
(<a26> ^digit1 2 ^digit2 6 ^sum 8 ^carry-borrow 0)
(<a27> ^digit1 2 ^digit2 7 ^sum 9 ^carry-borrow 0)
(<a28> ^digit1 2 ^digit2 8 ^sum 0 ^carry-borrow 1)
(<a29> ^digit1 2 ^digit2 9 ^sum 1 ^carry-borrow 1)
(<a30> ^digit1 3 ^digit2 0 ^sum 3 ^carry-borrow 0)
(<a31> ^digit1 3 ^digit2 1 ^sum 4 ^carry-borrow 0)
(<a32> ^digit1 3 ^digit2 2 ^sum 5 ^carry-borrow 0)
(<a33> ^digit1 3 ^digit2 3 ^sum 6 ^carry-borrow 0)
(<a34> ^digit1 3 ^digit2 4 ^sum 7 ^carry-borrow 0)
(<a35> ^digit1 3 ^digit2 5 ^sum 8 ^carry-borrow 0)
(<a36> ^digit1 3 ^digit2 6 ^sum 9 ^carry-borrow 0)
(<a37> ^digit1 3 ^digit2 7 ^sum 0 ^carry-borrow 1)
(<a38> ^digit1 3 ^digit2 8 ^sum 1 ^carry-borrow 1)
(<a39> ^digit1 3 ^digit2 9 ^sum 2 ^carry-borrow 1)
(<a40> ^digit1 4 ^digit2 0 ^sum 4 ^carry-borrow 0)
(<a41> ^digit1 4 ^digit2 1 ^sum 5 ^carry-borrow 0)
(<a42> ^digit1 4 ^digit2 2 ^sum 6 ^carry-borrow 0)
(<a43> ^digit1 4 ^digit2 3 ^sum 7 ^carry-borrow 0)
(<a44> ^digit1 4 ^digit2 4 ^sum 8 ^carry-borrow 0)
(<a45> ^digit1 4 ^digit2 5 ^sum 9 ^carry-borrow 0)
(<a46> ^digit1 4 ^digit2 6 ^sum 0 ^carry-borrow 1)
(<a47> ^digit1 4 ^digit2 7 ^sum 1 ^carry-borrow 1)
(<a48> ^digit1 4 ^digit2 8 ^sum 2 ^carry-borrow 1)
(<a49> ^digit1 4 ^digit2 9 ^sum 3 ^carry-borrow 1)
(<a50> ^digit1 5 ^digit2 0 ^sum 5 ^carry-borrow 0)
(<a51> ^digit1 5 ^digit2 1 ^sum 6 ^carry-borrow 0)
(<a52> ^digit1 5 ^digit2 2 ^sum 7 ^carry-borrow 0)
(<a53> ^digit1 5 ^digit2 3 ^sum 8 ^carry-borrow 0)
(<a54> ^digit1 5 ^digit2 4 ^sum 9 ^carry-borrow 0)
(<a55> ^digit1 5 ^digit2 5 ^sum 0 ^carry-borrow 1)
(<a56> ^digit1 5 ^digit2 6 ^sum 1 ^carry-borrow 1)
(<a57> ^digit1 5 ^digit2 7 ^sum 2 ^carry-borrow 1)
(<a58> ^digit1 5 ^digit2 8 ^sum 3 ^carry-borrow 1)
(<a59> ^digit1 5 ^digit2 9 ^sum 4 ^carry-borrow 1)
(<a60> ^digit1 6 ^digit2 0 ^sum 6 ^carry-borrow 0)
(<a61> ^digit1 6 ^digit2 1 ^sum 7 ^carry-borrow 0)
(<a62> ^digit1 6 ^digit2 2 ^sum 8 ^carry-borrow 0)
(<a63> ^digit1 6 ^digit2 3 ^sum 9 ^carry-borrow 0)
(<a64> ^digit1 6 ^digit2 4 ^sum 0 ^carry-borrow 1)
(<a65> ^digit1 6 ^digit2 5 ^sum 1 ^carry-borrow 1)
(<a66> ^digit1 6 ^digit2 6 ^sum 2 ^carry-borrow 1)
(<a67> ^digit1 6 ^digit2 7 ^sum 3 ^carry-borrow 1)
(<a68> ^digit1 6 ^digit2 8 ^sum 4 ^carry-borrow 1)
(<a69> ^digit1 6 ^digit2 9 ^sum 5 ^carry-borrow 1)
(<a70> ^digit1 7 ^digit2 0 ^sum 7 ^carry-borrow 0)
(<a71> ^digit1 7 ^digit2 1 ^sum 8 ^carry-borrow 0)
(<a72> ^digit1 7 ^digit2 2 ^sum 9 ^carry-borrow 0)
(<a73> ^digit1 7 ^digit2 3 ^sum 0 ^carry-borrow 1)
(<a74> ^digit1 7 ^digit2 4 ^sum 1 ^carry-borrow 1)
(<a75> ^digit1 7 ^digit2 5 ^sum 2 ^carry-borrow 1)
(<a76> ^digit1 7 ^digit2 6 ^sum 3 ^carry-borrow 1)
(<a77> ^digit1 7 ^digit2 7 ^sum 4 ^carry-borrow 1)
(<a78> ^digit1 7 ^digit2 8 ^sum 5 ^carry-borrow 1)
(<a79> ^digit1 7 ^digit2 9 ^sum 6 ^carry-borrow 1)
(<a80> ^digit1 8 ^digit2 0 ^sum 8 ^carry-borrow 0)
(<a81> ^digit1 8 ^digit2 1 ^sum 9 ^carry-borrow 0)
(<a82> ^digit1 8 ^digit2 2 ^sum 0 ^carry-borrow 1)
(<a83> ^digit1 8 ^digit2 3 ^sum 1 ^carry-borrow 1)
(<a84> ^digit1 8 ^digit2 4 ^sum 2 ^carry-borrow 1)
(<a85> ^digit1 8 ^digit2 5 ^sum 3 ^carry-borrow 1)
(<a86> ^digit1 8 ^digit2 6 ^sum 4 ^carry-borrow 1)
(<a87> ^digit1 8 ^digit2 7 ^sum 5 ^carry-borrow 1)
(<a88> ^digit1 8 ^digit2 8 ^sum 6 ^carry-borrow 1)
(<a89> ^digit1 8 ^digit2 9 ^sum 7 ^carry-borrow 1)
(<a90> ^digit1 9 ^digit2 0 ^sum 9 ^carry-borrow 0)
(<a91> ^digit1 9 ^digit2 1 ^sum 0 ^carry-borrow 1)
(<a92> ^digit1 9 ^digit2 2 ^sum 1 ^carry-borrow 1)
(<a93> ^digit1 9 ^digit2 3 ^sum 2 ^carry-borrow 1)
(<a94> ^digit1 9 ^digit2 4 ^sum 3 ^carry-borrow 1)
(<a95> ^digit1 9 ^digit2 5 ^sum 4 ^carry-borrow 1)
(<a96> ^digit1 9 ^digit2 6 ^sum 5 ^carry-borrow 1)
(<a97> ^digit1 9 ^digit2 7 ^sum 6 ^carry-borrow 1)
(<a98> ^digit1 9 ^digit2 8 ^sum 7 ^carry-borrow 1)
(<a99> ^digit1 9 ^digit2 9 ^sum 8 ^carry-borrow 1)
}
sp {arithmetic*apply*generate-facts*sub
(state <s> ^operator.name generate-facts
^fact-source wm)
-->
(<s> ^arithmetic.subtraction-facts
<a01> <a02> <a03> <a04> <a05> <a06> <a07> <a08> <a09> <a00>
<a11> <a12> <a13> <a14> <a15> <a16> <a17> <a18> <a19> <a10>
<a21> <a22> <a23> <a24> <a25> <a26> <a27> <a28> <a29> <a20>
<a31> <a32> <a33> <a34> <a35> <a36> <a37> <a38> <a39> <a30>
<a41> <a42> <a43> <a44> <a45> <a46> <a47> <a48> <a49> <a40>
<a51> <a52> <a53> <a54> <a55> <a56> <a57> <a58> <a59> <a50>
<a61> <a62> <a63> <a64> <a65> <a66> <a67> <a68> <a69> <a60>
<a71> <a72> <a73> <a74> <a75> <a76> <a77> <a78> <a79> <a70>
<a81> <a82> <a83> <a84> <a85> <a86> <a87> <a88> <a89> <a80>
<a91> <a92> <a93> <a94> <a95> <a96> <a97> <a98> <a99> <a90>)
(<a00> ^digit1 0 ^digit2 0 ^result 0)
(<a01> ^digit1 10 ^digit2 1 ^result 9)
(<a02> ^digit1 10 ^digit2 2 ^result 8)
(<a03> ^digit1 10 ^digit2 3 ^result 7)
(<a04> ^digit1 10 ^digit2 4 ^result 6)
(<a05> ^digit1 10 ^digit2 5 ^result 5)
(<a06> ^digit1 10 ^digit2 6 ^result 4)
(<a07> ^digit1 10 ^digit2 7 ^result 3)
(<a08> ^digit1 10 ^digit2 8 ^result 2)
(<a09> ^digit1 10 ^digit2 9 ^result 1)
(<a10> ^digit1 1 ^digit2 0 ^result 1)
(<a11> ^digit1 1 ^digit2 1 ^result 0)
(<a12> ^digit1 11 ^digit2 2 ^result 9)
(<a13> ^digit1 11 ^digit2 3 ^result 8)
(<a14> ^digit1 11 ^digit2 4 ^result 7)
(<a15> ^digit1 11 ^digit2 5 ^result 6)
(<a16> ^digit1 11 ^digit2 6 ^result 5)
(<a17> ^digit1 11 ^digit2 7 ^result 4)
(<a18> ^digit1 11 ^digit2 8 ^result 3)
(<a19> ^digit1 11 ^digit2 9 ^result 2)
(<a20> ^digit1 2 ^digit2 0 ^result 2)
(<a21> ^digit1 2 ^digit2 1 ^result 1)
(<a22> ^digit1 2 ^digit2 2 ^result 0)
(<a23> ^digit1 12 ^digit2 3 ^result 9)
(<a24> ^digit1 12 ^digit2 4 ^result 8)
(<a25> ^digit1 12 ^digit2 5 ^result 7)
(<a26> ^digit1 12 ^digit2 6 ^result 6)
(<a27> ^digit1 12 ^digit2 7 ^result 5)
(<a28> ^digit1 12 ^digit2 8 ^result 4)
(<a29> ^digit1 12 ^digit2 9 ^result 3)
(<a30> ^digit1 3 ^digit2 0 ^result 3)
(<a31> ^digit1 3 ^digit2 1 ^result 2)
(<a32> ^digit1 3 ^digit2 2 ^result 1)
(<a33> ^digit1 3 ^digit2 3 ^result 0)
(<a34> ^digit1 13 ^digit2 4 ^result 9)
(<a35> ^digit1 13 ^digit2 5 ^result 8)
(<a36> ^digit1 13 ^digit2 6 ^result 7)
(<a37> ^digit1 13 ^digit2 7 ^result 6)
(<a38> ^digit1 13 ^digit2 8 ^result 5)
(<a39> ^digit1 13 ^digit2 9 ^result 4)
(<a40> ^digit1 4 ^digit2 0 ^result 4)
(<a41> ^digit1 4 ^digit2 1 ^result 3)
(<a42> ^digit1 4 ^digit2 2 ^result 2)
(<a43> ^digit1 4 ^digit2 3 ^result 1)
(<a44> ^digit1 4 ^digit2 4 ^result 0)
(<a45> ^digit1 14 ^digit2 5 ^result 9)
(<a46> ^digit1 14 ^digit2 6 ^result 8)
(<a47> ^digit1 14 ^digit2 7 ^result 7)
(<a48> ^digit1 14 ^digit2 8 ^result 6)
(<a49> ^digit1 14 ^digit2 9 ^result 5)
(<a50> ^digit1 5 ^digit2 0 ^result 5)
(<a51> ^digit1 5 ^digit2 1 ^result 4)
(<a52> ^digit1 5 ^digit2 2 ^result 3)
(<a53> ^digit1 5 ^digit2 3 ^result 2)
(<a54> ^digit1 5 ^digit2 4 ^result 1)
(<a55> ^digit1 5 ^digit2 5 ^result 0)
(<a56> ^digit1 15 ^digit2 6 ^result 9)
(<a57> ^digit1 15 ^digit2 7 ^result 8)
(<a58> ^digit1 15 ^digit2 8 ^result 7)
(<a59> ^digit1 15 ^digit2 9 ^result 6)
(<a60> ^digit1 6 ^digit2 0 ^result 6)
(<a61> ^digit1 6 ^digit2 1 ^result 5)
(<a62> ^digit1 6 ^digit2 2 ^result 4)
(<a63> ^digit1 6 ^digit2 3 ^result 3)
(<a64> ^digit1 6 ^digit2 4 ^result 2)
(<a65> ^digit1 6 ^digit2 5 ^result 1)
(<a66> ^digit1 6 ^digit2 6 ^result 0)
(<a67> ^digit1 16 ^digit2 7 ^result 9)
(<a68> ^digit1 16 ^digit2 8 ^result 8)
(<a69> ^digit1 16 ^digit2 9 ^result 7)
(<a70> ^digit1 7 ^digit2 0 ^result 7)
(<a71> ^digit1 7 ^digit2 1 ^result 6)
(<a72> ^digit1 7 ^digit2 2 ^result 5)
(<a73> ^digit1 7 ^digit2 3 ^result 4)
(<a74> ^digit1 7 ^digit2 4 ^result 3)
(<a75> ^digit1 7 ^digit2 5 ^result 2)
(<a76> ^digit1 7 ^digit2 6 ^result 1)
(<a77> ^digit1 7 ^digit2 7 ^result 0)
(<a78> ^digit1 17 ^digit2 8 ^result 9)
(<a79> ^digit1 17 ^digit2 9 ^result 8)
(<a80> ^digit1 8 ^digit2 0 ^result 8)
(<a81> ^digit1 8 ^digit2 1 ^result 7)
(<a82> ^digit1 8 ^digit2 2 ^result 6)
(<a83> ^digit1 8 ^digit2 3 ^result 5)
(<a84> ^digit1 8 ^digit2 4 ^result 4)
(<a85> ^digit1 8 ^digit2 5 ^result 3)
(<a86> ^digit1 8 ^digit2 6 ^result 2)
(<a87> ^digit1 8 ^digit2 7 ^result 1)
(<a88> ^digit1 8 ^digit2 8 ^result 0)
(<a89> ^digit1 18 ^digit2 9 ^result 9)
(<a90> ^digit1 9 ^digit2 0 ^result 9)
(<a91> ^digit1 9 ^digit2 1 ^result 8)
(<a92> ^digit1 9 ^digit2 2 ^result 7)
(<a93> ^digit1 9 ^digit2 3 ^result 6)
(<a94> ^digit1 9 ^digit2 4 ^result 5)
(<a95> ^digit1 9 ^digit2 5 ^result 4)
(<a96> ^digit1 9 ^digit2 6 ^result 3)
(<a97> ^digit1 9 ^digit2 7 ^result 2)
(<a98> ^digit1 9 ^digit2 8 ^result 1)
(<a99> ^digit1 9 ^digit2 9 ^result 0)
}
sp {arithmetic*apply*generate-facts*add10
(state <s> ^operator.name generate-facts
^fact-source wm)
-->
(<s> ^arithmetic.add10-facts
<a01> <a02> <a03> <a04> <a05> <a06> <a07> <a08> <a09> <a00>)
(<a00> ^digit1 0 ^digit-10 10)
(<a01> ^digit1 1 ^digit-10 11)
(<a02> ^digit1 2 ^digit-10 12)
(<a03> ^digit1 3 ^digit-10 13)
(<a04> ^digit1 4 ^digit-10 14)
(<a05> ^digit1 5 ^digit-10 15)
(<a06> ^digit1 6 ^digit-10 16)
(<a07> ^digit1 7 ^digit-10 17)
(<a08> ^digit1 8 ^digit-10 18)
(<a09> ^digit1 9 ^digit-10 19)
}