; your code goes here
(defrule factorial
(fact_run ?x)
=>
(assert (fact ?x 1)))
(defrule fact_helper
(fact ?x ?y)
(test (> ?x 0))
=>
(assert (fact (- ?x 1) (* ?x ?y))))
(assert (fact_run 5))
(assert (fact_run 5))
(run)
(facts)
(exit)
; empty line at the end
OyB5b3VyIGNvZGUgZ29lcyBoZXJlCgooZGVmcnVsZSBmYWN0b3JpYWwKICAgKGZhY3RfcnVuID94KQogICA9PgogICAoYXNzZXJ0IChmYWN0ID94IDEpKSkKCihkZWZydWxlIGZhY3RfaGVscGVyCiAgIChmYWN0ID94ID95KQogICAodGVzdCAoPiA/eCAwKSkKICAgPT4KICAgKGFzc2VydCAoZmFjdCAoLSA/eCAxKSAoKiA/eCA/eSkpKSkKCihhc3NlcnQgKGZhY3RfcnVuIDUpKQoKKGFzc2VydCAoZmFjdF9ydW4gNSkpCihydW4pCihmYWN0cykKCihleGl0KQo7IGVtcHR5IGxpbmUgYXQgdGhlIGVuZA==