def concept one as 1
def concept two as 2
def concept three as 3
def concept four as 4
def concept five as 5
def concept six as 6
def concept seven as 7
def concept eight as 8
def concept nine as 9
def concept ten as 10
def concept eleven as 11
def concept twelve as 12
def concept thirteen as 13
def concept fourteen as 14
def concept fifteen as 15
def concept sixteen as 16
def concept seventeen as 17
def concept eighteen as 18
def concept nineteen as 19
def concept twenty as 20
def concept number
set_isa(one, number)
set_isa(two, number)
set_isa(three, number)
set_isa(four, number)
set_isa(five, number)
set_isa(six, number)
set_isa(seven, number)
set_isa(eight, number)
set_isa(nine, number)
set_isa(ten, number)
set_isa(eleven, number)
set_isa(twelve, number)
set_isa(thirteen, number)
set_isa(fourteen, number)
set_isa(fifteen, number)
set_isa(sixteen, number)
set_isa(seventeen, number)
set_isa(eighteen, number)
set_isa(nineteen, number)
set_isa(twenty, number)
def concept twenties from bnf twenty number where number < 10 as twenty + number
set_isa(twenties, number)
def concept thirty as 30
set_isa(thirty, number)
def concept thirties from bnf thirty number where number < 10 as thirty + number
set_isa(thirties, number)
def concept forty as 40
set_isa(forty, number)
def concept forties from bnf forty number where number < 10 as forty + number
set_isa(forties, number)
def concept fifty as 50
set_isa(fifty, number)
def concept fifties from bnf fifty number where number < 10 as fifty + number
set_isa(fifties, number)
def concept sixty as 60
set_isa(sixty, number)
def concept sixties from bnf sixty number where number < 10 as sixty + number
set_isa(sixties, number)
def concept seventy as 70
set_isa(seventy, number)
def concept seventies from bnf seventy number where number < 10 as seventy + number
set_isa(seventies, number)
def concept eighty as 80
set_isa(eighty, number)
def concept eighties from bnf eighty number where number < 10 as eighty + number
set_isa(eighties, number)
def concept ninety as 90
set_isa(ninety, number)
def concept nineties from bnf ninety number where number < 10 as ninety + number
set_isa(nineties, number)
def concept one hundred as 100
set_isa(one hundred, number)
def concept hundreds from bnf number=n1 'hundred' 'and' number=n2 where n1 < 10 and n2 < 100 as n1 * 100 + n2
set_isa(hundreds, number)
def concept hundreds from bnf number 'hundred' where number < 10 as number * 100
last_created_concept() is number
def concept thousands from bnf number 'thousand' where number < 1000 as number * 1000
set_isa(thousands, number)
def concept thousands from bnf number=n1 'thousand' 'and' number=n2 as n1 * 1000 + n2 where n1 < 1000 and n2 < 1000
last_created_concept() is number
def concept history as history()
def concept plus from a plus b as a + b
def concept minus from a minus b as a - b
def concept multiplied from a multiplied by b as a * b
def concept divided from a divided by b as a * b
set_is_greater_than(__PRECEDENCE, multiplied, plus)
set_is_greater_than(__PRECEDENCE, divided, plus)
set_is_greater_than(__PRECEDENCE, multiplied, minus)
set_is_greater_than(__PRECEDENCE, divided, minus)
def concept explain as get_results() | filter("id == 0") | recurse(2)
def concept explain last as get_last_results() | filter("id == 0") | recurse(2)
def concept explain x as get_results() | filter(f"id == {x}") | recurse(3) where x
def concept explain x '--recurse' y as get_results() | filter(f"id == {x}") | recurse(y) where x,y
set_isa(c:explain:, __AUTO_EVAL)
set_isa(c:explain last:, __AUTO_EVAL)
set_isa(c:explain x:, __AUTO_EVAL)
def concept precedence a > precedence b as set_is_greater_than(__PRECEDENCE, a, b)
set_isa(c:precedence a > precedence b:, __AUTO_EVAL)
def concept x is a command as set_isa(x, __AUTO_EVAL)
set_isa(c:x is a command:, __AUTO_EVAL)
def concept q from q ? as question(q) pre is_question()
set_is_lesser(__PRECEDENCE, q)
def concept x is a 'concept' as isinstance(x, Concept) pre is_question()
def concept x is a y as isa(x,y) pre is_question()
def concept explain x values where x as get_results() | filter(f"id=={x}") | format_d
set_isa(c:explain x values:, __AUTO_EVAL)