KIF Form Grammar

source: kifForm.g
variable
indvar
| seqvar
term
indvar
| constant
| charref
| string
| block
| quoterm
| funterm
| listterm
| logterm
quoterm
( "\\(\s*quote" listexpr "\\)" )
| ( "'" listexpr )
| ( "^" listexpr )
listexpr
atom
| ( "\\(" listexpr * "\\)" )
| ( "," listexpr )
atom
word
| charref
| string
| block
funterm
( "\\(\s*value" term term * [ seqvar ] "\\)" )
| ( "\\(" constant term * [ seqvar ] "\\)" )
listterm
"\\(\s*listof" term * [ seqvar ] "\\)"
logterm
( "\\(\s*if" logpair + [ term ] "\\)" )
| ( "\\(\s*cond" logitem * "\\)" )
logpair
sentence term
logitem
"\\(" sentence term "\\)"
sentence
constant
| equation
| inequality
| relsent
| logsent
| quantsent
equation
"\\(\s*=" term term "\\)"
inequality
"\\(\s*/=" term term "\\)"
relsent
( "\\(\s*holds" term term * [ seqvar ] "\\)" )
| ( "\\(" constant term * [ seqvar ] "\\)" )
logsent
( "\\(\s*not" sentence "\\)" )
| ( "\\(\s*and" sentence * "\\)" )
| ( "\\(\s*or" sentence * "\\)" )
| ( "\\(\s*=>" sentence * sentence "\\)" )
| ( "\\(\s*<=" sentence sentence * "\\)" )
| ( "\\(\s*<=>" sentence sentence "\\)" )
quantsent
( "\\(\s*forall" "\\(" varspec + "\\)" sentence "\\)" )
| ( "\\(\s*exists" "\\(" varspec + "\\)" sentence "\\)" )
varspec
variable
| ( "\\(" variable constant "\\)" )
form
sentence