The monadic language on a type of predicate symbols #
This file defines the monadic first-order language on a type Sym of predicate symbols, the
relational counterpart of Language.constantsOn, and its structures. Like constantsOn, it is a
language constructor rather than a fixed signature, and it sits beside constantsOn in
Mathlib/ModelTheory/LanguageMap.lean.
Main definitions #
FirstOrder.Language.monadic Symis the relational language whose relation symbols are the elements ofSym, all of arity one.FirstOrder.Language.monadic.structure holdsis themonadic Sym-structure onEinterpreting each symbolsas the predicateholds s.
Implementation notes #
The monadic signature with individual constants is (monadic Pred)[[Const]], mathlib's
Language.withConstants. Its structures are withConstantsStructure over monadic.structure
and constantsOn.structure, the constant symbol of c is (monadic Pred).con c, and the
relation symbol of P is Sum.inl P.
The relation symbols of the monadic language on Sym are the elements of Sym at arity one,
with no symbols at any other arity.
Equations
- FirstOrder.Language.monadicRel Sym 1 = Sym
- FirstOrder.Language.monadicRel Sym x✝ = PEmpty.{?u.2 + 1}
Instances For
The monadic language on Sym has one unary relation symbol for each element of Sym and no
other symbols.
Equations
- FirstOrder.Language.monadic Sym = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.monadicRel Sym }
Instances For
The monadic Sym-structure on E interpreting each symbol s as the predicate holds s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FirstOrder.Language.monadic.structure.decidableRelMap holds s v_1 = inst✝ s (v_1 0)