Class and Int syntax

Class and Int language syntax can be described in the following BNF form:

Article

Article → "environ" Environment "text" Text

Environment

Environment Empty
  | Proposition
  | Proposition ";" Environment
Proposition Formula
  | Label ":" Formula

Text

Text Empty
  | Text-Item
  | Text-Item ";" Text
Text-Item Diffuse-Statement
  | Compact-Statement
Diffuse-Statement "begin" Reasoning "end"
  | Label ":" "begin" Reasoning "end"
Compact-Statement Proposition Justification
Justification Simple-Justification
  | Proof
Simple-Justification Straightforward-Justification
  | Auto-Justification
Straightforward-Justification Empty
  | "by" Label-List
Auto-Justification "from" Label-List
Proof "proof" Reasoning "qed"
Label-List Label
  | Label "," Label-List
Reasoning Empty
  | Reasoning-Item
  | Reasoning-Item ";" Reasoning
Reasoning-Item Text-Item
  | Assumption
  | Conclusion
  | Choice-Statement
  | Generalization
  | Examplification
  | Constant-Definition
  | Iterative-Equality
Assumption Single-Assumption
  | Existential-Assumption
Single-Assumption "assume" Proposition
Existential-Assumption "given" Variable-List
  | "given" Variable-List "such" "that" Proposition
Conclusion "thus" Text-Item
Choice-Statement "consider" Variable-List
  | "consider" Variable-List "such" "that" Proposition Simple-Justification
Generalization "let" Variable-List
  | "let" Variable-List "such" "that" Proposition
Examplification "take" Examples
Examples Example
  | Example "," Examples
Example Term
  | Equating
Constant-Definition "set" Equating-List
Equating-List Equating
  | Equating "," Equating-List
Equating Variable "=" Term
Iterative-Equality Term "=" Term Simple-Justification Iterative-List
Iterative-List Iterative-Item
  | Iterative-Item Iterative-List
Iterative-Item ".=" Term Simple-Justification

Term

Term Variable
  | Functor-Identifier "(" Arguments ")"
Arguments Empty
  | Term-List
Term-List Term
  | Term "," Term-List

Formula

Formula "for" Variable-List "holds" Formula
  | "for" Variable-List "st" Formula "holds" Formula
  | "ex" Variable-List "st" Formula
  | Equivalence
Equivalence Implication
  | Equivalence "iff" Implication
Implication Disjunction
  | Implication "implies" Disjunction
Disjunction Conjunction
  | Disjunction "or" Conjunction
Conjunction Multiplier
  | Conjunction "&" Multiplier
Multiplier "not" Multiplier
  | "(" Formula ")"
  | "true"
  | "false"
  | "contradiction"
  | "thesis"
  | Atom
Atom Predicate-Identifier "[" Arguments "]"
  | Term "=" Term
Variable-List Variable
  | Variable "," Variable-List
Label Numeral
Variable Identifier
Functor-Identifier Identifier
Predicate-Identifier Identifier
Hosted by uCoz