
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/scientific/logic/concrete/extracted
Source used for this grammar: Jurgen Vinju, lang::logic::syntax::Booleans, 2011 [GitHub]
Source used for this grammar: Jurgen Vinju, lang::logic::syntax::Propositions, 2011 [GitHub]
Source used for this grammar: Jurgen Vinju, lang::logic::syntax::Truths, 2011 [GitHub]
Formula, False, True), 0 root (—), 0 top (—), 0 bottom (—).[arg], [not], [true], [false], [lhs] 5, [rhs] 5, [and], [or], [fi], [if], [iff], [id], [t], [lf] 4, [rt] 4, [rf] 4, [lt] 4, [f].Formula ::= [not]::"!" [arg]::Formula
Formula ::=
[true]::"true"Formula ::=
[false]::"false"Formula ::= [and]::[lhs]::Formula "&" [rhs]::Formula
Formula ::= [or]::[lhs]::Formula "|" [rhs]::Formula
Formula ::= [fi]::[lhs]::Formula "<=" [rhs]::Formula
Formula ::= [if]::[lhs]::Formula "=>" [rhs]::Formula
Formula ::= [iff]::[lhs]::Formula "<=>" [rhs]::Formula
Formula ::= [id]::ε
False ::=
"false"False ::=
"not" [t]::TrueFalse ::= "(" False ")"
False ::=
[lf]::False "and" [rt]::TrueFalse ::=
[lf]::False "and" [rf]::FalseFalse ::=
[lt]::True "and" [rf]::FalseFalse ::=
[lf]::False "or" [rf]::FalseTrue ::= "(" True ")"
True ::=
"true"True ::=
"not" [f]::FalseTrue ::=
[lt]::True "and" [rt]::TrueTrue ::=
[lt]::True "or" [rt]::TrueTrue ::=
[lt]::True "or" [rf]::FalseTrue ::=
[lf]::False "or" [rt]::True