Basics on First-Order Syntax #
This file defines first-order terms, formulas, sentences, and theories in a style inspired by the Flypitch project.
Main Definitions #
- A
FirstOrder.Language.Term
is defined so thatL.Term α
is the type ofL
-terms with free variables indexed byα
. - A
FirstOrder.Language.Formula
is defined so thatL.Formula α
is the type ofL
-formulas with free variables indexed byα
. - A
FirstOrder.Language.Sentence
is a formula with no free variables. - A
FirstOrder.Language.Theory
is a set of sentences. - The variables of terms and formulas can be relabelled with
FirstOrder.Language.Term.relabel
,FirstOrder.Language.BoundedFormula.relabel
, andFirstOrder.Language.Formula.relabel
. - Given an operation on terms and an operation on relations,
FirstOrder.Language.BoundedFormula.mapTermRel
gives an operation on formulas. FirstOrder.Language.BoundedFormula.castLE
adds moreFin
-indexed variables.FirstOrder.Language.BoundedFormula.liftAt
raises the indexes of theFin
-indexed variables above a particular index.FirstOrder.Language.Term.subst
andFirstOrder.Language.BoundedFormula.subst
substitute variables with given terms.- Language maps can act on syntactic objects with functions such as
FirstOrder.Language.LHom.onFormula
. FirstOrder.Language.Term.constantsVarsEquiv
andFirstOrder.Language.BoundedFormula.constantsVarsEquiv
switch terms and formulas between having constants in the language and having extra variables indexed by the same type.
Implementation Notes #
- Formulas use a modified version of de Bruijn variables. Specifically, a
L.BoundedFormula α n
is a formula with some variables indexed by a typeα
, which cannot be quantified over, and some indexed byFin n
, which can. For anyφ : L.BoundedFormula α (n + 1)
, we define the formula∀' φ : L.BoundedFormula α n
by universally quantifying over the variable indexed byn : Fin (n + 1)
.
References #
For the Flypitch project:
- [J. Han, F. van Doorn, A formal proof of the independence of the continuum hypothesis] [flypitch_cpp]
- [J. Han, F. van Doorn, A formalization of forcing and the unprovability of the continuum hypothesis][flypitch_itp]
A term on α
is either a variable indexed by an element of α
or a function symbol applied to simpler terms.
- var: {L : FirstOrder.Language} → {α : Type u'} → α → FirstOrder.Language.Term L α
- func: {L : FirstOrder.Language} → {α : Type u'} → {l : ℕ} → L.Functions l → (Fin l → FirstOrder.Language.Term L α) → FirstOrder.Language.Term L α
Instances For
The Finset
of variables used in a given term.
Equations
- FirstOrder.Language.Term.varFinset (FirstOrder.Language.var i) = {i}
- FirstOrder.Language.Term.varFinset (FirstOrder.Language.func _f ts) = Finset.biUnion Finset.univ fun (i : Fin l) => FirstOrder.Language.Term.varFinset (ts i)
Instances For
The Finset
of variables from the left side of a sum used in a given term.
Equations
- FirstOrder.Language.Term.varFinsetLeft (FirstOrder.Language.var (Sum.inl i)) = {i}
- FirstOrder.Language.Term.varFinsetLeft (FirstOrder.Language.var (Sum.inr _i)) = ∅
- FirstOrder.Language.Term.varFinsetLeft (FirstOrder.Language.func _f ts) = Finset.biUnion Finset.univ fun (i : Fin l) => FirstOrder.Language.Term.varFinsetLeft (ts i)
Instances For
Equations
- FirstOrder.Language.Term.relabel g (FirstOrder.Language.var i) = FirstOrder.Language.var (g i)
- FirstOrder.Language.Term.relabel g (FirstOrder.Language.func _f ts) = FirstOrder.Language.func _f fun {i : Fin l} => FirstOrder.Language.Term.relabel g (ts i)
Instances For
Relabels a term's variables along a bijection.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restricts a term to use only a set of the given variables.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.Term.restrictVar (FirstOrder.Language.var a) f = FirstOrder.Language.var (f { val := a, property := (_ : a ∈ {a}) })
Instances For
Restricts a term to use only a set of the given variables on the left side of a sum.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.Term.restrictVarLeft (FirstOrder.Language.var (Sum.inl a)) f = FirstOrder.Language.var (Sum.inl (f { val := a, property := (_ : a ∈ {a}) }))
- FirstOrder.Language.Term.restrictVarLeft (FirstOrder.Language.var (Sum.inr a)) _f = FirstOrder.Language.var (Sum.inr a)
Instances For
The representation of a constant symbol as a term.
Equations
Instances For
Applies a unary function to a term.
Equations
Instances For
Applies a binary function to two terms.
Equations
- FirstOrder.Language.Functions.apply₂ f t₁ t₂ = FirstOrder.Language.func f ![t₁, t₂]
Instances For
Sends a term with constants to a term with extra variables.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.Term.constantsToVars (FirstOrder.Language.var a) = FirstOrder.Language.var (Sum.inr a)
Instances For
Sends a term with extra variables to a term with constants.
Equations
- FirstOrder.Language.Term.varsToConstants (FirstOrder.Language.var (Sum.inr a)) = FirstOrder.Language.var a
- FirstOrder.Language.Term.varsToConstants (FirstOrder.Language.var (Sum.inl c)) = FirstOrder.Language.Constants.term (Sum.inr c)
- FirstOrder.Language.Term.varsToConstants (FirstOrder.Language.func f ts) = FirstOrder.Language.func (Sum.inl f) fun (i : Fin l) => FirstOrder.Language.Term.varsToConstants (ts i)
Instances For
A bijection between terms with constants and terms with extra variables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A bijection between terms with constants and terms with extra variables.
Equations
- FirstOrder.Language.Term.constantsVarsEquivLeft = FirstOrder.Language.Term.constantsVarsEquiv.trans (FirstOrder.Language.Term.relabelEquiv (Equiv.sumAssoc γ α β)).symm
Instances For
Equations
- FirstOrder.Language.Term.inhabitedOfVar = { default := FirstOrder.Language.var default }
Equations
- FirstOrder.Language.Term.inhabitedOfConstant = { default := FirstOrder.Language.Constants.term default }
Raises all of the Fin
-indexed variables of a term greater than or equal to m
by n'
.
Equations
- FirstOrder.Language.Term.liftAt n' m = FirstOrder.Language.Term.relabel (Sum.map id fun (i : Fin n) => if ↑i < m then Fin.castAdd n' i else Fin.addNat i n')
Instances For
Substitutes the variables in a given term with terms.
Equations
- FirstOrder.Language.Term.subst (FirstOrder.Language.var a) x = x a
- FirstOrder.Language.Term.subst (FirstOrder.Language.func f ts) x = FirstOrder.Language.func f fun (i : Fin l) => FirstOrder.Language.Term.subst (ts i) x
Instances For
Equations
- FirstOrder.«term&_» = Lean.ParserDescr.node `FirstOrder.term&_ 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "&") (Lean.ParserDescr.cat `term 1023))
Instances For
Maps a term's symbols along a language map.
Equations
- FirstOrder.Language.LHom.onTerm φ (FirstOrder.Language.var i) = FirstOrder.Language.var i
- FirstOrder.Language.LHom.onTerm φ (FirstOrder.Language.func _f ts) = FirstOrder.Language.func (φ.onFunction _f) fun (i : Fin l) => FirstOrder.Language.LHom.onTerm φ (ts i)
Instances For
Maps a term's symbols along a language equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
BoundedFormula α n
is the type of formulas with free variables indexed by α
and up to n
additional free variables.
- falsum: {L : FirstOrder.Language} → {α : Type u'} → {n : ℕ} → FirstOrder.Language.BoundedFormula L α n
- equal: {L : FirstOrder.Language} → {α : Type u'} → {n : ℕ} → FirstOrder.Language.Term L (α ⊕ Fin n) → FirstOrder.Language.Term L (α ⊕ Fin n) → FirstOrder.Language.BoundedFormula L α n
- rel: {L : FirstOrder.Language} → {α : Type u'} → {n l : ℕ} → L.Relations l → (Fin l → FirstOrder.Language.Term L (α ⊕ Fin n)) → FirstOrder.Language.BoundedFormula L α n
- imp: {L : FirstOrder.Language} → {α : Type u'} → {n : ℕ} → FirstOrder.Language.BoundedFormula L α n → FirstOrder.Language.BoundedFormula L α n → FirstOrder.Language.BoundedFormula L α n
- all: {L : FirstOrder.Language} → {α : Type u'} → {n : ℕ} → FirstOrder.Language.BoundedFormula L α (n + 1) → FirstOrder.Language.BoundedFormula L α n
Instances For
Formula α
is the type of formulas with all free variables indexed by α
.
Equations
Instances For
A sentence is a formula with no free variables.
Equations
Instances For
A theory is a set of sentences.
Equations
Instances For
Applies a relation to terms as a bounded formula.
Equations
Instances For
Applies a unary relation to a term as a bounded formula.
Equations
Instances For
Applies a binary relation to two terms as a bounded formula.
Equations
Instances For
The equality of two terms as a bounded formula.
Equations
Instances For
Applies a relation to terms as a bounded formula.
Equations
- FirstOrder.Language.Relations.formula R ts = FirstOrder.Language.Relations.boundedFormula R fun (i : Fin n) => FirstOrder.Language.Term.relabel Sum.inl (ts i)
Instances For
Applies a unary relation to a term as a formula.
Equations
Instances For
Applies a binary relation to two terms as a formula.
Equations
- FirstOrder.Language.Relations.formula₂ r t₁ t₂ = FirstOrder.Language.Relations.formula r ![t₁, t₂]
Instances For
The equality of two terms as a first-order formula.
Equations
- FirstOrder.Language.Term.equal t₁ t₂ = FirstOrder.Language.Term.bdEqual (FirstOrder.Language.Term.relabel Sum.inl t₁) (FirstOrder.Language.Term.relabel Sum.inl t₂)
Instances For
Equations
- FirstOrder.Language.BoundedFormula.instInhabitedBoundedFormula = { default := FirstOrder.Language.BoundedFormula.falsum }
Equations
- FirstOrder.Language.BoundedFormula.instBotBoundedFormula = { bot := FirstOrder.Language.BoundedFormula.falsum }
The negation of a bounded formula is also a bounded formula.
Instances For
Puts an ∃
quantifier on a bounded formula.
Equations
Instances For
Equations
- FirstOrder.Language.BoundedFormula.instTopBoundedFormula = { top := FirstOrder.Language.BoundedFormula.not ⊥ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The biimplication between two bounded formulas.
Equations
Instances For
The Finset
of variables used in a given formula.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.BoundedFormula.freeVarFinset FirstOrder.Language.BoundedFormula.falsum = ∅
- FirstOrder.Language.BoundedFormula.freeVarFinset (FirstOrder.Language.BoundedFormula.equal t₁ t₂) = FirstOrder.Language.Term.varFinsetLeft t₁ ∪ FirstOrder.Language.Term.varFinsetLeft t₂
- FirstOrder.Language.BoundedFormula.freeVarFinset (FirstOrder.Language.BoundedFormula.rel _R ts) = Finset.biUnion Finset.univ fun (i : Fin l) => FirstOrder.Language.Term.varFinsetLeft (ts i)
- FirstOrder.Language.BoundedFormula.freeVarFinset (FirstOrder.Language.BoundedFormula.all f) = FirstOrder.Language.BoundedFormula.freeVarFinset f
Instances For
Casts L.BoundedFormula α m
as L.BoundedFormula α n
, where m ≤ n
.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.BoundedFormula.castLE x FirstOrder.Language.BoundedFormula.falsum = FirstOrder.Language.BoundedFormula.falsum
- FirstOrder.Language.BoundedFormula.castLE x (FirstOrder.Language.BoundedFormula.all f) = FirstOrder.Language.BoundedFormula.all (FirstOrder.Language.BoundedFormula.castLE (_ : x✝¹ + 1 ≤ x✝ + 1) f)
Instances For
Restricts a bounded formula to only use a particular set of free variables.
Instances For
Places universal quantifiers on all extra variables of a bounded formula.
Equations
Instances For
Places existential quantifiers on all extra variables of a bounded formula.
Equations
Instances For
Maps bounded formulas along a map of terms and a map of relations.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.BoundedFormula.mapTermRel ft fr h FirstOrder.Language.BoundedFormula.falsum = FirstOrder.Language.BoundedFormula.falsum
- FirstOrder.Language.BoundedFormula.mapTermRel ft fr h (FirstOrder.Language.BoundedFormula.equal t₁ t₂) = FirstOrder.Language.BoundedFormula.equal (ft x t₁) (ft x t₂)
- FirstOrder.Language.BoundedFormula.mapTermRel ft fr h (FirstOrder.Language.BoundedFormula.rel _R ts) = FirstOrder.Language.BoundedFormula.rel (fr l _R) fun (i : Fin l) => ft x (ts i)
Instances For
Raises all of the Fin
-indexed variables of a formula greater than or equal to m
by n'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An equivalence of bounded formulas given by an equivalence of terms and an equivalence of relations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A function to help relabel the variables in bounded formulas.
Equations
- FirstOrder.Language.BoundedFormula.relabelAux g k = Sum.map id ⇑finSumFinEquiv ∘ ⇑(Equiv.sumAssoc β (Fin n) (Fin k)) ∘ Sum.map g id
Instances For
Relabels a bounded formula's variables along a particular function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Relabels a bounded formula's free variables along a bijection.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Substitutes the variables in a given formula with terms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A bijection sending formulas with constants to formulas with extra variables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Turns the extra variables of a bounded formula into free variables.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.BoundedFormula.toFormula FirstOrder.Language.BoundedFormula.falsum = FirstOrder.Language.BoundedFormula.falsum
- FirstOrder.Language.BoundedFormula.toFormula (FirstOrder.Language.BoundedFormula.equal t₁ t₂) = FirstOrder.Language.Term.equal t₁ t₂
- FirstOrder.Language.BoundedFormula.toFormula (FirstOrder.Language.BoundedFormula.rel _R ts) = FirstOrder.Language.Relations.formula _R ts
Instances For
take the disjunction of a finite set of formulas
Equations
- FirstOrder.Language.BoundedFormula.iSup s f = List.foldr (fun (x x_1 : FirstOrder.Language.BoundedFormula L α n) => x ⊔ x_1) ⊥ (List.map f (Finset.toList s))
Instances For
take the conjunction of a finite set of formulas
Equations
- FirstOrder.Language.BoundedFormula.iInf s f = List.foldr (fun (x x_1 : FirstOrder.Language.BoundedFormula L α n) => x ⊓ x_1) ⊤ (List.map f (Finset.toList s))
Instances For
An atomic formula is either equality or a relation symbol applied to terms.
Note that ⊥
and ⊤
are not considered atomic in this convention.
- equal: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (t₁ t₂ : FirstOrder.Language.Term L (α ⊕ Fin n)), FirstOrder.Language.BoundedFormula.IsAtomic (FirstOrder.Language.Term.bdEqual t₁ t₂)
- rel: ∀ {L : FirstOrder.Language} {α : Type u'} {n l : ℕ} (R : L.Relations l) (ts : Fin l → FirstOrder.Language.Term L (α ⊕ Fin n)), FirstOrder.Language.BoundedFormula.IsAtomic (FirstOrder.Language.Relations.boundedFormula R ts)
Instances For
A quantifier-free formula is a formula defined without quantifiers. These are all equivalent to boolean combinations of atomic formulas.
- falsum: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ}, FirstOrder.Language.BoundedFormula.IsQF FirstOrder.Language.BoundedFormula.falsum
- of_isAtomic: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : FirstOrder.Language.BoundedFormula L α n}, FirstOrder.Language.BoundedFormula.IsAtomic φ → FirstOrder.Language.BoundedFormula.IsQF φ
- imp: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ₁ φ₂ : FirstOrder.Language.BoundedFormula L α n}, FirstOrder.Language.BoundedFormula.IsQF φ₁ → FirstOrder.Language.BoundedFormula.IsQF φ₂ → FirstOrder.Language.BoundedFormula.IsQF (FirstOrder.Language.BoundedFormula.imp φ₁ φ₂)
Instances For
Indicates that a bounded formula is in prenex normal form - that is, it consists of quantifiers applied to a quantifier-free formula.
- of_isQF: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : FirstOrder.Language.BoundedFormula L α n}, FirstOrder.Language.BoundedFormula.IsQF φ → FirstOrder.Language.BoundedFormula.IsPrenex φ
- all: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : FirstOrder.Language.BoundedFormula L α (n + 1)}, FirstOrder.Language.BoundedFormula.IsPrenex φ → FirstOrder.Language.BoundedFormula.IsPrenex (FirstOrder.Language.BoundedFormula.all φ)
- ex: ∀ {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : FirstOrder.Language.BoundedFormula L α (n + 1)}, FirstOrder.Language.BoundedFormula.IsPrenex φ → FirstOrder.Language.BoundedFormula.IsPrenex (FirstOrder.Language.BoundedFormula.ex φ)
Instances For
An auxiliary operation to FirstOrder.Language.BoundedFormula.toPrenex
.
If φ
is quantifier-free and ψ
is in prenex normal form, then φ.toPrenexImpRight ψ
is a prenex normal form for φ.imp ψ
.
Instances For
An auxiliary operation to FirstOrder.Language.BoundedFormula.toPrenex
.
If φ
and ψ
are in prenex normal form, then φ.toPrenexImp ψ
is a prenex normal form for φ.imp ψ
.
Instances For
For any bounded formula φ
, φ.toPrenex
is a semantically-equivalent formula in prenex normal
form.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.BoundedFormula.toPrenex FirstOrder.Language.BoundedFormula.falsum = ⊥
- FirstOrder.Language.BoundedFormula.toPrenex (FirstOrder.Language.BoundedFormula.equal t₁ t₂) = FirstOrder.Language.Term.bdEqual t₁ t₂
- FirstOrder.Language.BoundedFormula.toPrenex (FirstOrder.Language.BoundedFormula.rel _R ts) = FirstOrder.Language.BoundedFormula.rel _R ts
- FirstOrder.Language.BoundedFormula.toPrenex (FirstOrder.Language.BoundedFormula.all f) = FirstOrder.Language.BoundedFormula.all (FirstOrder.Language.BoundedFormula.toPrenex f)
Instances For
Maps a bounded formula's symbols along a language map.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.LHom.onBoundedFormula g FirstOrder.Language.BoundedFormula.falsum = FirstOrder.Language.BoundedFormula.falsum
- FirstOrder.Language.LHom.onBoundedFormula g (FirstOrder.Language.BoundedFormula.rel _R ts) = FirstOrder.Language.Relations.boundedFormula (g.onRelation _R) (FirstOrder.Language.LHom.onTerm g ∘ ts)
- FirstOrder.Language.LHom.onBoundedFormula g (FirstOrder.Language.BoundedFormula.all f) = FirstOrder.Language.BoundedFormula.all (FirstOrder.Language.LHom.onBoundedFormula g f)
Instances For
Maps a formula's symbols along a language map.
Instances For
Maps a sentence's symbols along a language map.
Instances For
Maps a theory's symbols along a language map.
Equations
Instances For
Maps a bounded formula's symbols along a language equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Maps a formula's symbols along a language equivalence.
Instances For
Maps a sentence's symbols along a language equivalence.
Instances For
Equations
- FirstOrder.«term_='_» = Lean.ParserDescr.trailingNode `FirstOrder.term_='_ 88 88 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " =' ") (Lean.ParserDescr.cat `term 89))
Instances For
Equations
- FirstOrder.«term_⟹_» = Lean.ParserDescr.trailingNode `FirstOrder.term_⟹_ 62 63 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⟹ ") (Lean.ParserDescr.cat `term 62))
Instances For
Equations
- FirstOrder.«term∀'_» = Lean.ParserDescr.node `FirstOrder.term∀'_ 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∀'") (Lean.ParserDescr.cat `term 110))
Instances For
Equations
- FirstOrder.«term∼_» = Lean.ParserDescr.node `FirstOrder.term∼_ 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∼") (Lean.ParserDescr.cat `term 1023))
Instances For
Equations
- FirstOrder.«term_⇔_» = Lean.ParserDescr.trailingNode `FirstOrder.term_⇔_ 61 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇔ ") (Lean.ParserDescr.cat `term 62))
Instances For
Equations
- FirstOrder.«term∃'_» = Lean.ParserDescr.node `FirstOrder.term∃'_ 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∃'") (Lean.ParserDescr.cat `term 110))
Instances For
Relabels a formula's variables along a particular function.
Equations
Instances For
The graph of a function as a first-order formula.
Equations
Instances For
The negation of a formula.
Instances For
The implication between formulas, as a formula.
Equations
- FirstOrder.Language.Formula.imp = FirstOrder.Language.BoundedFormula.imp
Instances For
Given a map f : α → β ⊕ γ
, iAlls f φ
transforms a L.Formula α
into a L.Formula β
by renaming variables with the map f
and then universally
quantifying over all variables Sum.inr _
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a map f : α → β ⊕ γ
, iExs f φ
transforms a L.Formula α
into a L.Formula β
by renaming variables with the map f
and then universally
quantifying over all variables Sum.inr _
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The biimplication between formulas, as a formula.
Equations
Instances For
A bijection sending formulas to sentences with constants.
Equations
- FirstOrder.Language.Formula.equivSentence = (FirstOrder.Language.BoundedFormula.constantsVarsEquiv.trans (FirstOrder.Language.BoundedFormula.relabelEquiv (Equiv.sumEmpty α Empty))).symm
Instances For
The sentence indicating that a basic relation symbol is reflexive.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sentence indicating that a basic relation symbol is irreflexive.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sentence indicating that a basic relation symbol is symmetric.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sentence indicating that a basic relation symbol is antisymmetric.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sentence indicating that a basic relation symbol is transitive.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sentence indicating that a basic relation symbol is total.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A sentence indicating that a structure has n
distinct elements.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A theory indicating that a structure is infinite.
Instances For
A theory that indicates a structure is nonempty.
Equations
Instances For
A theory indicating that each of a set of constants is distinct.
Equations
- One or more equations did not get rendered due to their size.