| Article = | use | |
| Environment-Declaration Text-Proper . | ||
| Environment-Declaration = | use | |
| "environ" { Directive } . | ||
| Directive = | use | |
| Vocabulary-Directive | Library-Directive | Requirement-Directive . | ||
| Vocabulary-Directive = | use | |
| "vocabularies" Vocabulary-Name { "," Vocabulary-Name } ";" . | ||
| Vocabulary-Name = | use | |
| File-Name . | ||
| Library-Directive = | use | |
| ( "notations" | "constructors" | "registrations" | "definitions" | "theorems" | "schemes" ) Article-Name { "," Article-Name } ";" . | ||
| Article-Name = | use | |
| File-Name . | ||
| Requirement-Directive = | use | |
| "requirements" Requirement { "," Requirement } ";" . | ||
| Requirement = | use | |
| File-Name . | ||
| Text-Proper = | use | |
| Section { Section } . | ||
| Section = | use | |
| "begin" { Text-Item } . | ||
| Text-Item = | use | |
| Reservation | Definitional-Item | Registration-Item | Notation-Item | Theorem | Scheme-Item | Auxiliary-Item | Canceled-Theorem . | ||
| Reservation = | use | |
| "reserve" Reservation-Segment { "," Reservation-Segment } ";" . | ||
| Reservation-Segment = | use | |
| Reserved-Identifiers "for" Type-Expression . | ||
| Reserved-Identifiers = | use | |
| Identifier { "," Identifier } . | ||
| Definitional-Item = | use | |
| Definitional-Block ";" . | ||
| Registration-Item = | use | |
| Registration-Block ";" . | ||
| Notation-Item = | use | |
| Notation-Block ";" . | ||
| Definitional-Block = | use | |
| "definition" { ( Definition-Item | Definition ) } [ Redefinition-Block ] "end" . | ||
| Redefinition-Block = | use | |
| "redefine" { ( Definition-Item | Definition ) } . | ||
| Registration-Block = | use | |
| "registration" { ( Loci-Declaration | Cluster-Registration ) } "end" . | ||
| Notation-Block = | use | |
| "notation" { ( Loci-Declaration | Notation-Declaration ) } "end" . | ||
| Definition-Item = | use | |
| Loci-Declaration | Permissive-Assumption | Auxiliary-Item . | ||
| Notation-Declaration = | use | |
| Attribute-Synonym | Attribute-Antonym | Functor-Synonym | Mode-Synonym | Predicate-Synonym | Predicate-Antonym . | ||
| Loci-Declaration = | use | |
| "let" Qualified-Variables [ "such" Conditions ] ";" . | ||
| Permissive-Assumption = | use | |
| Assumption . | ||
| Definition = | use | |
| Structure-Definition | Mode-Definition | Functor-Definition | Predicate-Definition | Attribute-Definition | Canceled-Definition . | ||
| Structure-Definition = | use | |
| "struct" [ "(" Ancestors ")" ] Structure-Symbol [ "over" Loci ] "(#" Fields "#)" ";" . | ||
| Ancestors = | use | |
| Structure-Type-Expression { "," Structure-Type-Expression } . | ||
| Structure-Symbol = | use | |
| Symbol . | ||
| Loci = | use | |
| Locus { "," Locus } . | ||
| Fields = | use | |
| Field-Segment { "," Field-Segment } . | ||
| Locus = | use | |
| Variable-Identifier . | ||
| Variable-Identifier = | use | |
| Identifier . | ||
| Field-Segment = | use | |
| Selector-Symbol { "," Selector-Symbol } Specification . | ||
| Selector-Symbol = | use | |
| Symbol . | ||
| Specification = | use | |
| "->" Type-Expression . | ||
| Mode-Definition = | use | |
| "mode" Mode-Pattern ( [ Specification ] [ "means" Definiens ] ";" Correctness-Conditions | "is" Type-Expression ";" ) . | ||
| Mode-Pattern = | use | |
| Mode-Symbol [ "of" Loci ] . | ||
| Mode-Symbol = | use | |
| Symbol . | ||
| Mode-Synonym = | use | |
| "synonym" Mode-Pattern "for" Mode-Pattern ";" . | ||
| Definiens = | use | |
| Simple-Definiens | Conditional-Definiens . | ||
| Simple-Definiens = | use | |
| [ ":" Label-Identifier ":" ] ( Sentence | Term-Expression ) . | ||
| Label-Identifier = | use | |
| Identifier . | ||
| Conditional-Definiens = | use | |
| [ ":" Label-Identifier ":" ] Partial-Definiens-List [ "otherwise" ( Sentence | Term-Expression ) ] . | ||
| Partial-Definiens-List = | use | |
| Partial-Definiens { "," Partial-Definiens } . | ||
| Partial-Definiens = | use | |
| ( Sentence | Term-Expression ) "if" Sentence . | ||
| Functor-Definition = | use | |
| "func" Functor-Pattern [ Specification ] [ ( "means" | "equals" ) Definiens ] ";" Correctness-Conditions { Functor-Property } . | ||
| Functor-Pattern = | use | |
| [ Functor-Loci ] Functor-Symbol [ Functor-Loci ] | Left-Functor-Bracket Loci Right-Functor-Bracket . | ||
| Functor-Property = | use | |
| ( "commutativity" | "idempotence" | "involutiveness" | "projectivity" ) Justification ";" . | ||
| Functor-Synonym = | use | |
| "synonym" Functor-Pattern "for" Functor-Pattern ";" . | ||
| Functor-Loci = | use | |
| Locus | "(" Loci ")" . | ||
| Functor-Symbol = | use | |
| Symbol . | ||
| Left-Functor-Bracket = | use | |
| Symbol . | ||
| Right-Functor-Bracket = | use | |
| Symbol . | ||
| Predicate-Definition = | use | |
| "pred" Predicate-Pattern [ "means" Definiens ] ";" [ "correctness" Justification ";" ] { Predicate-Property } . | ||
| Predicate-Pattern = | use | |
| [ Loci ] Predicate-Symbol [ Loci ] . | ||
| Predicate-Property = | use | |
| ( "symmetry" | "asymmetry" | "connectedness" | "reflexivity" | "irreflexivity" ) Justification ";" . | ||
| Predicate-Synonym = | use | |
| "synonym" Predicate-Pattern "for" Predicate-Pattern ";" . | ||
| Predicate-Antonym = | use | |
| "antonym" Predicate-Pattern "for" Predicate-Pattern ";" . | ||
| Predicate-Symbol = | use | |
| Symbol . | ||
| Attribute-Definition = | use | |
| "attr" Attribute-Pattern "means" Definiens ";" [ "correctness" Justification ";" ] . | ||
| Attribute-Pattern = | use | |
| Locus "is" Attribute-Symbol . | ||
| Attribute-Synonym = | use | |
| "synonym" ( Attribute-Pattern | Predicate-Pattern ) "for" Attribute-Pattern ";" . | ||
| Attribute-Antonym = | use | |
| "antonym" ( Attribute-Pattern | Predicate-Pattern ) "for" Attribute-Pattern ";" . | ||
| Attribute-Symbol = | use | |
| Symbol . | ||
| Canceled-Definition = | use | |
| "canceled" [ Numeral ] ";" . | ||
| Cluster-Registration = | use | |
| Existential-Registration | Conditional-Registration | Functorial-Registration . | ||
| Existential-Registration = | use | |
| "cluster" Adjective-Cluster Type-Expression ";" Correctness-Conditions . | ||
| Adjective-Cluster = | use | |
| { Adjective } . | ||
| Adjective = | use | |
| [ "non" ] Attribute-Symbol . | ||
| Conditional-Registration = | use | |
| "cluster" Adjective-Cluster "->" Adjective-Cluster Type-Expression ";" Correctness-Conditions . | ||
| Functorial-Registration = | use | |
| "cluster" Term-Expression "->" Adjective-Cluster ";" Correctness-Conditions . | ||
| Correctness-Conditions = | use | |
| { Correctness-Condition } [ "correctness" Justification ";" ] . | ||
| Correctness-Condition = | use | |
| ( "existence" | "uniqueness" | "coherence" | "compatibility" | "consistency" ) Justification ";" . | ||
| Theorem = | use | |
| "theorem" Compact-Statement . | ||
| Scheme-Item = | use | |
| Scheme-Block ";" . | ||
| Scheme-Block = | use | |
| "scheme" Scheme-Identifier "{" Scheme-Parameters "}" ":" Scheme-Conclusion [ "provided" Scheme-Premise { "and" Scheme-Premise } ] "proof" { Reasoning-Item } "end" . | ||
| Scheme-Identifier = | use | |
| Identifier . | ||
| Scheme-Parameters = | use | |
| Scheme-Segment { "," Scheme-Segment } . | ||
| Scheme-Conclusion = | use | |
| Sentence . | ||
| Scheme-Premise = | use | |
| Proposition . | ||
| Scheme-Segment = | use | |
| Predicate-Segment | Functor-Segment . | ||
| Predicate-Segment = | use | |
| Predicate-Identifier { "," Predicate-Identifier } "[" [ Type-Expression-List ] "]" . | ||
| Predicate-Identifier = | use | |
| Identifier . | ||
| Functor-Segment = | use | |
| Functor-Identifier { "," Functor-Identifier } "(" [ Type-Expression-List ] ")" Specification . | ||
| Functor-Identifier = | use | |
| Identifier . | ||
| Auxiliary-Item = | use | |
| Statement | Private-Definition . | ||
| Canceled-Theorem = | use | |
| "canceled" [ Numeral ] ";" . | ||
| Private-Definition = | use | |
| Constant-Definition | Private-Functor-Definition | Private-Predicate-Definition . | ||
| Constant-Definition = | use | |
| "set" Equating-List ";" . | ||
| Equating-List = | use | |
| Equating { "," Equating } . | ||
| Equating = | use | |
| Variable-Identifier "=" Term-Expression . | ||
| Private-Functor-Definition = | use | |
| "deffunc" Private-Functor-Pattern "=" Term-Expression . | ||
| Private-Predicate-Definition = | use | |
| "defpred" Private-Predicate-Pattern "means" Sentence . | ||
| Private-Functor-Pattern = | use | |
| Functor-Identifier "(" [ Type-Expression-List ] ")" . | ||
| Private-Predicate-Pattern = | use | |
| Predicate-Identifier "[" [ Type-Expression-List ] "]" . | ||
| Reasoning = | use | |
| { Reasoning-Item } [ "per" "cases" Simple-Justification ";" ( Case-List | Suppose-List ) ] . | ||
| Case-List = | use | |
| Case { Case } . | ||
| Case = | use | |
| "case" ( Proposition | Conditions ) ";" { Reasoning-Item } "end" ";" . | ||
| Suppose-List = | use | |
| Suppose { Suppose } . | ||
| Suppose = | use | |
| "suppose" ( Proposition | Conditions ) ";" { Reasoning-Item } "end" ";" . | ||
| Reasoning-Item = | use | |
| Auxiliary-Item | Skeleton-Item . | ||
| Skeleton-Item = | use | |
| Generalization | Assumption | Conclusion | Exemplification . | ||
| Generalization = | use | |
| "let" Qualified-Variables [ "such" Conditions ] ";" . | ||
| Assumption = | use | |
| Single-Assumption | Collective-Assumption | Existential-Assumption . | ||
| Single-Assumption = | use | |
| "assume" Proposition ";" . | ||
| Collective-Assumption = | use | |
| "assume" Conditions ";" . | ||
| Existential-Assumption = | use | |
| "given" Qualified-Variables [ "such" Conditions ] ";" . | ||
| Conclusion = | use | |
| ( "thus" | "hence" ) Compact-Statement | Diffuse-Conclusion . | ||
| Diffuse-Conclusion = | use | |
| "thus" Diffuse-Statement | "hereby" Reasoning "end" ";" . | ||
| Exemplification = | use | |
| "take" Example { "," Example } ";" . | ||
| Example = | use | |
| Term-Expression | Variable-Identifier "=" Term-Expression . | ||
| Statement = | use | |
| [ "then" ] Linkable-Statement | Diffuse-Statement . | ||
| Linkable-Statement = | use | |
| Compact-Statement | Choice-Statement | Type-Changing-Statement | Iterative-Equality . | ||
| Compact-Statement = | use | |
| Proposition Justification ";" . | ||
| Choice-Statement = | use | |
| "consider" Qualified-Variables [ "such" Conditions ] Simple-Justification ";" . | ||
| Type-Changing-Statement = | use | |
| "reconsider" Type-Change-List "as" Type-Expression Simple-Justification ";" . | ||
| Type-Change-List = | use | |
| ( Equating | Variable-Identifier ) { "," ( Equating | Variable-Identifier ) } . | ||
| Iterative-Equality = | use | |
| Term-Expression "=" Term-Expression Simple-Justification ".=" Term-Expression Simple-Justification { ".=" Term-Expression Simple-Justification } ";" . | ||
| Diffuse-Statement = | use | |
| [ Label-Identifier ":" ] "now" Reasoning "end" ";" . | ||
| Justification = | use | |
| Simple-Justification | Proof . | ||
| Simple-Justification = | use | |
| Straightforward-Justification | Scheme-Justification . | ||
| Proof = | use | |
| ( "proof" | "@proof" ) Reasoning "end" . | ||
| Straightforward-Justification = | use | |
| [ "by" References ] . | ||
| Scheme-Justification = | use | |
| "from" Scheme-Reference [ "(" References ")" ] . | ||
| References = | use | |
| Reference { "," Reference } . | ||
| Reference = | use | |
| Local-Reference | Library-Reference . | ||
| Scheme-Reference = | use | |
| Local-Scheme-Reference | Library-Scheme-Reference . | ||
| Local-Reference = | use | |
| Label-Identifier . | ||
| Local-Scheme-Reference = | use | |
| Scheme-Identifier . | ||
| Library-Reference = | use | |
| Article-Name ":" ( Theorem-Number | "def" Definition-Number ) { "," ( Theorem-Number | "def" Definition-Number ) } . | ||
| Library-Scheme-Reference = | use | |
| Article-Name ":" "sch" Scheme-Number . | ||
| Theorem-Number = | use | |
| Numeral . | ||
| Definition-Number = | use | |
| Numeral . | ||
| Scheme-Number = | use | |
| Numeral . | ||
| Conditions = | use | |
| "that" Proposition { "and" Proposition } . | ||
| Proposition = | use | |
| [ Label-Identifier ":" ] Sentence . | ||
| Sentence = | use | |
| Formula-Expression . | ||
| Formula-Expression = | use | |
| "(" Formula-Expression ")" | Atomic-Formula-Expression | Quantified-Formula-Expression | Formula-Expression "&" Formula-Expression | Formula-Expression "or" Formula-Expression | Formula-Expression "implies" Formula-Expression | Formula-Expression "iff" Formula-Expression | "not" Formula-Expression | "contradiction" | "thesis" . | ||
| Atomic-Formula-Expression = | use | |
| [ Term-Expression-List ] Predicate-Symbol [ Term-Expression-List ] | Predicate-Identifier "[" [ Term-Expression-List ] "]" | Term-Expression "is" Adjective { Adjective } | Term-Expression "is" Type-Expression . | ||
| Quantified-Formula-Expression = | use | |
| "for" Qualified-Variables [ "st" Formula-Expression ] ( "holds" Formula-Expression | Quantified-Formula-Expression ) | "ex" Qualified-Variables "st" Formula-Expression . | ||
| Qualified-Variables = | use | |
| Implicitly-Qualified-Variables | Explicitly-Qualified-Variables | Explicitly-Qualified-Variables "," Implicitly-Qualified-Variables . | ||
| Implicitly-Qualified-Variables = | use | |
| Variables . | ||
| Explicitly-Qualified-Variables = | use | |
| Qualified-Segment { "," Qualified-Segment } . | ||
| Qualified-Segment = | use | |
| Variables Qualification . | ||
| Variables = | use | |
| Variable-Identifier { "," Variable-Identifier } . | ||
| Qualification = | use | |
| ( "being" | "be" ) Type-Expression . | ||
| Type-Expression = | use | |
| "(" Type-Expression ")" | Adjective-Cluster Type-Expression | Radix-Type . | ||
| Structure-Type-Expression = | use | |
| "(" Structure-Type-Expression ")" | Adjective-Cluster Structure-Symbol [ "over" Term-Expression-List ] . | ||
| Radix-Type = | use | |
| Mode-Symbol [ "of" Term-Expression-List ] | Structure-Symbol [ "over" Term-Expression-List ] . | ||
| Type-Expression-List = | use | |
| Type-Expression { "," Type-Expression } . | ||
| Term-Expression = | use | |
| "(" Term-Expression ")" | [ Arguments ] Functor-Symbol [ Arguments ] | Left-Functor-Bracket Term-Expression-List Right-Functor-Bracket | Functor-Identifier "(" [ Term-Expression-List ] ")" | Structure-Symbol "(#" Term-Expression-List "#)" | Variable-Identifier | "{" Term-Expression [ Postqualification ] ":" Sentence "}" | Numeral | Term-Expression "qua" Type-Expression | "the" Selector-Symbol "of" Term-Expression | "the" Selector-Symbol | Private-Definition-Parameter | "it" . | ||
| Arguments = | use | |
| Term-Expression | "(" Term-Expression-List ")" . | ||
| Term-Expression-List = | use | |
| Term-Expression { "," Term-Expression } . | ||
| Postqualification = | use | |
| "where" Postqualifying-Segment { "," Postqualifying-Segment } . | ||
| Postqualifying-Segment = | use | |
| Postqualified-Variable { "," Postqualified-Variable } "is" Type-Expression . | ||
| Postqualified-Variable = | use | |
| Identifier . | ||
| Private-Definition-Parameter = | use | |
| "$1" | "$2" | "$3" | "$4" | "$5" | "$6" | "$7" | "$8" | "$9" | "$10" . | ||