All Downloads are FREE. Search and download functionalities are using the official Maven repository.

APT.Arithmetic-smem.arithmetic.generate-facts.soar Maven / Gradle / Ivy

sp {arithmetic*propose*generate-facts
   (state  ^name arithmetic
             -^arithmetic.facts)
-->
   ( ^operator  + =, >)
   ( ^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  ^operator.name generate-facts
              ^parameters.fact-source smem)
-->
   ( ^arithmetic.facts preloaded)
}

sp {arithmetic*apply*generate-facts*add*sub
   (state  ^operator.name generate-facts
              ^parameters.fact-source wm)
-->
   ( ^arithmetic.facts
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   )
   ( ^digit1 0 ^digit2 0 ^sum 0 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 1 ^sum 1 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 2 ^sum 2 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 3 ^sum 3 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 4 ^sum 4 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 5 ^sum 5 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 6 ^sum 6 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 7 ^sum 7 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 8 ^sum 8 ^carry-borrow 0)
   ( ^digit1 0 ^digit2 9 ^sum 9 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 0 ^sum 1 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 1 ^sum 2 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 2 ^sum 3 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 3 ^sum 4 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 4 ^sum 5 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 5 ^sum 6 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 6 ^sum 7 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 7 ^sum 8 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 8 ^sum 9 ^carry-borrow 0)
   ( ^digit1 1 ^digit2 9 ^sum 0 ^carry-borrow 1)
   ( ^digit1 2 ^digit2 0 ^sum 2 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 1 ^sum 3 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 2 ^sum 4 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 3 ^sum 5 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 4 ^sum 6 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 5 ^sum 7 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 6 ^sum 8 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 7 ^sum 9 ^carry-borrow 0)
   ( ^digit1 2 ^digit2 8 ^sum 0 ^carry-borrow 1)
   ( ^digit1 2 ^digit2 9 ^sum 1 ^carry-borrow 1)
   ( ^digit1 3 ^digit2 0 ^sum 3 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 1 ^sum 4 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 2 ^sum 5 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 3 ^sum 6 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 4 ^sum 7 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 5 ^sum 8 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 6 ^sum 9 ^carry-borrow 0)
   ( ^digit1 3 ^digit2 7 ^sum 0 ^carry-borrow 1)
   ( ^digit1 3 ^digit2 8 ^sum 1 ^carry-borrow 1)
   ( ^digit1 3 ^digit2 9 ^sum 2 ^carry-borrow 1)
   ( ^digit1 4 ^digit2 0 ^sum 4 ^carry-borrow 0)
   ( ^digit1 4 ^digit2 1 ^sum 5 ^carry-borrow 0)
   ( ^digit1 4 ^digit2 2 ^sum 6 ^carry-borrow 0)
   ( ^digit1 4 ^digit2 3 ^sum 7 ^carry-borrow 0)
   ( ^digit1 4 ^digit2 4 ^sum 8 ^carry-borrow 0)
   ( ^digit1 4 ^digit2 5 ^sum 9 ^carry-borrow 0)
   ( ^digit1 4 ^digit2 6 ^sum 0 ^carry-borrow 1)
   ( ^digit1 4 ^digit2 7 ^sum 1 ^carry-borrow 1)
   ( ^digit1 4 ^digit2 8 ^sum 2 ^carry-borrow 1)
   ( ^digit1 4 ^digit2 9 ^sum 3 ^carry-borrow 1)
   ( ^digit1 5 ^digit2 0 ^sum 5 ^carry-borrow 0)
   ( ^digit1 5 ^digit2 1 ^sum 6 ^carry-borrow 0)
   ( ^digit1 5 ^digit2 2 ^sum 7 ^carry-borrow 0)
   ( ^digit1 5 ^digit2 3 ^sum 8 ^carry-borrow 0)
   ( ^digit1 5 ^digit2 4 ^sum 9 ^carry-borrow 0)
   ( ^digit1 5 ^digit2 5 ^sum 0 ^carry-borrow 1)
   ( ^digit1 5 ^digit2 6 ^sum 1 ^carry-borrow 1)
   ( ^digit1 5 ^digit2 7 ^sum 2 ^carry-borrow 1)
   ( ^digit1 5 ^digit2 8 ^sum 3 ^carry-borrow 1)
   ( ^digit1 5 ^digit2 9 ^sum 4 ^carry-borrow 1)
   ( ^digit1 6 ^digit2 0 ^sum 6 ^carry-borrow 0)
   ( ^digit1 6 ^digit2 1 ^sum 7 ^carry-borrow 0)
   ( ^digit1 6 ^digit2 2 ^sum 8 ^carry-borrow 0)
   ( ^digit1 6 ^digit2 3 ^sum 9 ^carry-borrow 0)
   ( ^digit1 6 ^digit2 4 ^sum 0 ^carry-borrow 1)
   ( ^digit1 6 ^digit2 5 ^sum 1 ^carry-borrow 1)
   ( ^digit1 6 ^digit2 6 ^sum 2 ^carry-borrow 1)
   ( ^digit1 6 ^digit2 7 ^sum 3 ^carry-borrow 1)
   ( ^digit1 6 ^digit2 8 ^sum 4 ^carry-borrow 1)
   ( ^digit1 6 ^digit2 9 ^sum 5 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 0 ^sum 7 ^carry-borrow 0)
   ( ^digit1 7 ^digit2 1 ^sum 8 ^carry-borrow 0)
   ( ^digit1 7 ^digit2 2 ^sum 9 ^carry-borrow 0)
   ( ^digit1 7 ^digit2 3 ^sum 0 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 4 ^sum 1 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 5 ^sum 2 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 6 ^sum 3 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 7 ^sum 4 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 8 ^sum 5 ^carry-borrow 1)
   ( ^digit1 7 ^digit2 9 ^sum 6 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 0 ^sum 8 ^carry-borrow 0)
   ( ^digit1 8 ^digit2 1 ^sum 9 ^carry-borrow 0)
   ( ^digit1 8 ^digit2 2 ^sum 0 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 3 ^sum 1 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 4 ^sum 2 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 5 ^sum 3 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 6 ^sum 4 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 7 ^sum 5 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 8 ^sum 6 ^carry-borrow 1)
   ( ^digit1 8 ^digit2 9 ^sum 7 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 0 ^sum 9 ^carry-borrow 0)
   ( ^digit1 9 ^digit2 1 ^sum 0 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 2 ^sum 1 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 3 ^sum 2 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 4 ^sum 3 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 5 ^sum 4 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 6 ^sum 5 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 7 ^sum 6 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 8 ^sum 7 ^carry-borrow 1)
   ( ^digit1 9 ^digit2 9 ^sum 8 ^carry-borrow 1)
}

sp {arithmetic*apply*generate-facts*sub
   (state  ^operator.name generate-facts
              ^parameters.fact-source wm)
-->
   ( ^arithmetic.subtraction-facts
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   )
   ( ^digit1 0 ^digit2 0 ^result 0)
   ( ^digit1 10 ^digit2 1 ^result 9)
   ( ^digit1 10 ^digit2 2 ^result 8)
   ( ^digit1 10 ^digit2 3 ^result 7)
   ( ^digit1 10 ^digit2 4 ^result 6)
   ( ^digit1 10 ^digit2 5 ^result 5)
   ( ^digit1 10 ^digit2 6 ^result 4)
   ( ^digit1 10 ^digit2 7 ^result 3)
   ( ^digit1 10 ^digit2 8 ^result 2)
   ( ^digit1 10 ^digit2 9 ^result 1)
   ( ^digit1 1 ^digit2 0 ^result 1)
   ( ^digit1 1 ^digit2 1 ^result 0)
   ( ^digit1 11 ^digit2 2 ^result 9)
   ( ^digit1 11 ^digit2 3 ^result 8)
   ( ^digit1 11 ^digit2 4 ^result 7)
   ( ^digit1 11 ^digit2 5 ^result 6)
   ( ^digit1 11 ^digit2 6 ^result 5)
   ( ^digit1 11 ^digit2 7 ^result 4)
   ( ^digit1 11 ^digit2 8 ^result 3)
   ( ^digit1 11 ^digit2 9 ^result 2)
   ( ^digit1 2 ^digit2 0 ^result 2)
   ( ^digit1 2 ^digit2 1 ^result 1)
   ( ^digit1 2 ^digit2 2 ^result 0)
   ( ^digit1 12 ^digit2 3 ^result 9)
   ( ^digit1 12 ^digit2 4 ^result 8)
   ( ^digit1 12 ^digit2 5 ^result 7)
   ( ^digit1 12 ^digit2 6 ^result 6)
   ( ^digit1 12 ^digit2 7 ^result 5)
   ( ^digit1 12 ^digit2 8 ^result 4)
   ( ^digit1 12 ^digit2 9 ^result 3)
   ( ^digit1 3 ^digit2 0 ^result 3)
   ( ^digit1 3 ^digit2 1 ^result 2)
   ( ^digit1 3 ^digit2 2 ^result 1)
   ( ^digit1 3 ^digit2 3 ^result 0)
   ( ^digit1 13 ^digit2 4 ^result 9)
   ( ^digit1 13 ^digit2 5 ^result 8)
   ( ^digit1 13 ^digit2 6 ^result 7)
   ( ^digit1 13 ^digit2 7 ^result 6)
   ( ^digit1 13 ^digit2 8 ^result 5)
   ( ^digit1 13 ^digit2 9 ^result 4)
   ( ^digit1 4 ^digit2 0 ^result 4)
   ( ^digit1 4 ^digit2 1 ^result 3)
   ( ^digit1 4 ^digit2 2 ^result 2)
   ( ^digit1 4 ^digit2 3 ^result 1)
   ( ^digit1 4 ^digit2 4 ^result 0)
   ( ^digit1 14 ^digit2 5 ^result 9)
   ( ^digit1 14 ^digit2 6 ^result 8)
   ( ^digit1 14 ^digit2 7 ^result 7)
   ( ^digit1 14 ^digit2 8 ^result 6)
   ( ^digit1 14 ^digit2 9 ^result 5)
   ( ^digit1 5 ^digit2 0 ^result 5)
   ( ^digit1 5 ^digit2 1 ^result 4)
   ( ^digit1 5 ^digit2 2 ^result 3)
   ( ^digit1 5 ^digit2 3 ^result 2)
   ( ^digit1 5 ^digit2 4 ^result 1)
   ( ^digit1 5 ^digit2 5 ^result 0)
   ( ^digit1 15 ^digit2 6 ^result 9)
   ( ^digit1 15 ^digit2 7 ^result 8)
   ( ^digit1 15 ^digit2 8 ^result 7)
   ( ^digit1 15 ^digit2 9 ^result 6)
   ( ^digit1 6 ^digit2 0 ^result 6)
   ( ^digit1 6 ^digit2 1 ^result 5)
   ( ^digit1 6 ^digit2 2 ^result 4)
   ( ^digit1 6 ^digit2 3 ^result 3)
   ( ^digit1 6 ^digit2 4 ^result 2)
   ( ^digit1 6 ^digit2 5 ^result 1)
   ( ^digit1 6 ^digit2 6 ^result 0)
   ( ^digit1 16 ^digit2 7 ^result 9)
   ( ^digit1 16 ^digit2 8 ^result 8)
   ( ^digit1 16 ^digit2 9 ^result 7)
   ( ^digit1 7 ^digit2 0 ^result 7)
   ( ^digit1 7 ^digit2 1 ^result 6)
   ( ^digit1 7 ^digit2 2 ^result 5)
   ( ^digit1 7 ^digit2 3 ^result 4)
   ( ^digit1 7 ^digit2 4 ^result 3)
   ( ^digit1 7 ^digit2 5 ^result 2)
   ( ^digit1 7 ^digit2 6 ^result 1)
   ( ^digit1 7 ^digit2 7 ^result 0)
   ( ^digit1 17 ^digit2 8 ^result 9)
   ( ^digit1 17 ^digit2 9 ^result 8)
   ( ^digit1 8 ^digit2 0 ^result 8)
   ( ^digit1 8 ^digit2 1 ^result 7)
   ( ^digit1 8 ^digit2 2 ^result 6)
   ( ^digit1 8 ^digit2 3 ^result 5)
   ( ^digit1 8 ^digit2 4 ^result 4)
   ( ^digit1 8 ^digit2 5 ^result 3)
   ( ^digit1 8 ^digit2 6 ^result 2)
   ( ^digit1 8 ^digit2 7 ^result 1)
   ( ^digit1 8 ^digit2 8 ^result 0)
   ( ^digit1 18 ^digit2 9 ^result 9)
   ( ^digit1 9 ^digit2 0 ^result 9)
   ( ^digit1 9 ^digit2 1 ^result 8)
   ( ^digit1 9 ^digit2 2 ^result 7)
   ( ^digit1 9 ^digit2 3 ^result 6)
   ( ^digit1 9 ^digit2 4 ^result 5)
   ( ^digit1 9 ^digit2 5 ^result 4)
   ( ^digit1 9 ^digit2 6 ^result 3)
   ( ^digit1 9 ^digit2 7 ^result 2)
   ( ^digit1 9 ^digit2 8 ^result 1)
   ( ^digit1 9 ^digit2 9 ^result 0)
}


sp {arithmetic*apply*generate-facts*add10
   (state  ^operator.name generate-facts
              ^parameters.fact-source wm)
-->
   ( ^arithmetic.add10-facts
                                   )
   ( ^digit1 0 ^digit-10 10)
   ( ^digit1 1 ^digit-10 11)
   ( ^digit1 2 ^digit-10 12)
   ( ^digit1 3 ^digit-10 13)
   ( ^digit1 4 ^digit-10 14)
   ( ^digit1 5 ^digit-10 15)
   ( ^digit1 6 ^digit-10 16)
   ( ^digit1 7 ^digit-10 17)
   ( ^digit1 8 ^digit-10 18)
   ( ^digit1 9 ^digit-10 19)
}
#