Type Spaces #
This file defines the space of complete types over a first-order theory. (Note that types in model theory are different from types in type theory.)
Main Definitions #
FirstOrder.Language.Theory.CompleteType:T.CompleteType αconsists of complete types over the theoryTwith variablesα.FirstOrder.Language.Theory.typeOfis the type of a given tuple.FirstOrder.Language.Theory.realizedTypes:T.realizedTypes M αis the set of types inT.CompleteType αthat are realized inM- that is, the type of some tuple inM.
Main Results #
FirstOrder.Language.Theory.CompleteType.nonempty_iff: The spaceT.CompleteType αis nonempty exactly whenTis satisfiable.FirstOrder.Language.Theory.CompleteType.exists_modelType_is_realized_in: Every type is realized in some model.
Implementation Notes #
- Complete types are implemented as maximal consistent theories in an expanded language. More frequently they are described as maximal consistent sets of formulas, but this is equivalent.
TODO #
- Connect
T.CompleteType αto sets of formulasL.Formula α.
A complete type over a given theory in a certain type of variables is a maximally consistent (with the theory) set of formulas in that type.
- toTheory : (L.withConstants α).Theory
The underlying theory
- subset' : (L.lhomWithConstants α).onTheory T ⊆ ↑self
- isMaximal' : (↑self).IsMaximal
Instances For
The clopen set of complete types which contain a formula.
Instances For
Equations
- FirstOrder.Language.Theory.CompleteType.Sentence.instSetLike = { coe := fun (p : T.CompleteType α) => ↑p, coe_injective := ⋯ }
Alias of FirstOrder.Language.Theory.CompleteType.compl_setOfPred_mem.
Alias of FirstOrder.Language.Theory.CompleteType.setOfPred_subset_eq_empty_iff.
Alias of FirstOrder.Language.Theory.CompleteType.setOfPred_mem_eq_univ_iff.
Alias of FirstOrder.Language.Theory.CompleteType.setOfPred_subset_eq_univ_iff.
Alias of FirstOrder.Language.Theory.CompleteType.iInter_setOfPred_subset.
The set of all formulas true at a tuple in a structure forms a complete type.
Equations
- T.typeOf v = { toTheory := (L.withConstants α).completeTheory M, subset' := ⋯, isMaximal' := ⋯ }
Instances For
A complete type p is realized in a particular structure when there is some
tuple v whose type is p.
Equations
- T.realizedTypes M α = Set.range T.typeOf