From 8cb297ed0022b42e377781bc9bcdb071e226ed3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Metin=20Ersin=20Ar=C4=B1can?= Date: Fri, 16 Aug 2024 16:42:24 +0300 Subject: [PATCH] Restructure the lemmas and definitions Generalize some lemmas a little --- FormalTextbookModelTheory.lean | 5 +- FormalTextbookModelTheory/ForMathlib/DLO.lean | 246 ------- .../Fin/VecNotation.lean} | 0 .../ForMathlib/ModelTheory/DLO.lean | 181 +++++ .../ForMathlib/ModelTheory/Order.lean | 78 ++ blueprint/lean_decls | 24 +- blueprint/print/print.aux | 48 +- blueprint/print/print.fdb_latexmk | 14 +- blueprint/print/print.log | 30 +- blueprint/print/print.pdf | Bin 29260 -> 36661 bytes blueprint/print/print.synctex.gz | Bin 6179 -> 10335 bytes blueprint/src/chapters/basics.tex | 72 +- blueprint/src/chapters/main.tex | 3 +- blueprint/src/chapters/model_theory.tex | 121 +++- blueprint/src/print.tex | 2 +- blueprint/src/web.paux | Bin 9130 -> 12471 bytes blueprint/web/dep_graph_document.html | 426 +++++++++-- blueprint/web/index.html | 8 +- blueprint/web/sect0001.html | 234 +++++- blueprint/web/sect0002.html | 672 ++++++++++++++++-- blueprint/web/sect0003.html | 8 +- 21 files changed, 1700 insertions(+), 472 deletions(-) delete mode 100644 FormalTextbookModelTheory/ForMathlib/DLO.lean rename FormalTextbookModelTheory/ForMathlib/{Matrix.lean => Data/Fin/VecNotation.lean} (100%) create mode 100644 FormalTextbookModelTheory/ForMathlib/ModelTheory/DLO.lean create mode 100644 FormalTextbookModelTheory/ForMathlib/ModelTheory/Order.lean diff --git a/FormalTextbookModelTheory.lean b/FormalTextbookModelTheory.lean index 3c10936..d686522 100644 --- a/FormalTextbookModelTheory.lean +++ b/FormalTextbookModelTheory.lean @@ -1,2 +1,3 @@ -import FormalTextbookModelTheory.ForMathlib.Matrix -import FormalTextbookModelTheory.ForMathlib.DLO +import FormalTextbookModelTheory.ForMathlib.Data.Fin.VecNotation +import FormalTextbookModelTheory.ForMathlib.ModelTheory.Order +import FormalTextbookModelTheory.ForMathlib.ModelTheory.DLO diff --git a/FormalTextbookModelTheory/ForMathlib/DLO.lean b/FormalTextbookModelTheory/ForMathlib/DLO.lean deleted file mode 100644 index 0b7a2e9..0000000 --- a/FormalTextbookModelTheory/ForMathlib/DLO.lean +++ /dev/null @@ -1,246 +0,0 @@ -import Mathlib.SetTheory.Cardinal.Basic -import Mathlib.ModelTheory.Basic -import Mathlib.ModelTheory.Syntax -import Mathlib.ModelTheory.Semantics -import Mathlib.ModelTheory.Satisfiability -import Mathlib.ModelTheory.Bundled -import Mathlib.ModelTheory.Order -import Mathlib.Order.CountableDenseLinearOrder - -import FormalTextbookModelTheory.ForMathlib.Matrix - - -open Cardinal -open FirstOrder Language Structure Theory Order -open Matrix (Vector_eq_VecNotation₂ comp_VecNotation₂) - -namespace FirstOrder.Language.Order - -section - -variable {M : Type w} [instStructure : Language.order.Structure M] - -/-- -The interpretation of the unique binary relation symbol of the language `Language.order` on a type `M` gives a -natural binary relation on `M` and it is written with `≤`. --/ -instance instLE : LE M where - le := fun x y => instStructure.RelMap leSymb ![x, y] - -/-- -Given a type `M` and `𝓜 : Language.order.Structure`, the `Language.order.Structure M` instance induced by the `LE M` -instance which is induced by `𝓜` is equal to `𝓜`. In other words, for a fixed type `M`, `@orderStructure M` is the -left-inverse of `@instLE M`. --/ -@[simp] -lemma orderStructure_of_LE : @orderStructure M (@instLE M instStructure) = instStructure := by - ext1 - · funext _ r - exfalso - exact IsEmpty.elim (by infer_instance) r - · funext n r x - match n with - | 0 | 1 | _ + 3 => - exfalso - simp only [Language.order, mk₂_Relations, Sequence₂] at r - exact IsEmpty.elim (by infer_instance) r - | 2 => - rw [Vector_eq_VecNotation₂ x, (by apply Subsingleton.allEq : r = leSymb)] - simp only [orderStructure, LE.le, Structure.relMap_apply₂] - -/-- -By definition, the binary relation `≤` is equal to the interpretation of the unique binary relation symbol of the -language `Language.order`. --/ -instance : @OrderedStructure Language.order M _ instLE instStructure := by - simp only [OrderedStructure, orderLHom_order, orderStructure_of_LE] - exact @LHom.id_isExpansionOn Language.order M instStructure - -end - -section - -variable {M : Type w} [Language.order.Structure M] -variable {N : Type w} [Language.order.Structure N] - -/-- -An order embedding `φ : M ↪o N`, induces and embedding of structures with the same underlying function. --/ -def toLEmbedding (φ : M ↪o N) : M ↪[Language.order] N where - toEmbedding := φ.toEmbedding - map_fun' := by - intro n f - exfalso - exact IsEmpty.elim (by infer_instance) f - map_rel' := by - intro n r x - match n with - | 0 | 1 | _ + 3 => - exfalso - simp [Language.order, Sequence₂] at r - exact IsEmpty.elim (by infer_instance) r - | 2 => - rw [Vector_eq_VecNotation₂ x, comp_VecNotation₂ φ.toFun, - (by apply Subsingleton.allEq : r = leSymb), relMap_leSymb, relMap_leSymb] - exact φ.map_rel_iff - -/-- -An order isomorphism `φ : M ≃o N`, induces and isomorphism of structures with the same underlying function. --/ -def toLIso (φ : M ≃o N) : M ≃[Language.order] N where - toEquiv := φ.toEquiv - map_fun' := (toLEmbedding (φ.toOrderEmbedding)).map_fun' - map_rel' := (toLEmbedding (φ.toOrderEmbedding)).map_rel' - -end - -namespace DLO --region - -section - -variable (M : Type w) [Language.order.Structure M] -variable [M ⊨ Language.order.dlo] - -/-- -Models of the theory `Language.order.dlo` satisfies the reflexivity sentence. --/ -protected lemma realize_reflexive : M ⊨ (leSymb (L := Language.order)).reflexive := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - left; left; rfl - -/-- -Models of the theory `Language.order.dlo` satisfies the transitivity sentence. --/ -protected lemma realize_transitive : M ⊨ (leSymb (L := Language.order)).transitive := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - left; right; right; left; rfl - -/-- -Models of the theory `Language.order.dlo` satisfies the antisymmetric sentence. --/ -protected lemma realize_antisymmetric : M ⊨ (leSymb (L := Language.order)).antisymmetric := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - left; right; left; rfl - -/-- -Models of the theory `Language.order.dlo` satisfies the totality sentence. --/ -protected lemma realize_total : M ⊨ (leSymb (L := Language.order)).total := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - left; right; right; right; rfl - -/-- -Models of the theory `Language.order.dlo` satisfies the densely ordered sentence. --/ -protected lemma realize_denselyOrderedSentence : M ⊨ Language.order.denselyOrderedSentence := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - right; right; right; rfl - -/-- -Models of the theory `Language.order.dlo` satisfies the noBotOrder sentence. --/ -protected lemma realize_noBotOrderSentence : M ⊨ Language.order.noBotOrderSentence := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - right; right; left; rfl - -/-- -Models of the theory `Language.order.dlo` satisfies the noTopOrder sentence. --/ -protected lemma realize_noTopOrderSentence : M ⊨ Language.order.noTopOrderSentence := by - apply realize_sentence_of_mem Language.order.dlo - unfold dlo linearOrderTheory - right; left; rfl - -end - -section - -variable {M : Type w} [instStructure : Language.order.Structure M] -variable [instModel : M ⊨ Language.order.dlo] - -instance instPreorder : Preorder M where - le := (@instLE M instStructure).le - le_refl := by - have := DLO.realize_reflexive M - simp only [Relations.realize_reflexive] at this - exact this - le_trans := by - have := DLO.realize_transitive M - simp only [Relations.realize_transitive] at this - exact this - -@[simp] -lemma toLE_of_Preorder - : (@instPreorder M instStructure instModel).toLE = @instLE M instStructure := rfl - -noncomputable instance instLinearOrder : LinearOrder M where - toPreorder := @instPreorder M instStructure instModel - le_antisymm := by - have := DLO.realize_antisymmetric M - simp only [Relations.realize_antisymmetric] at this - exact this - le_total := by - have := DLO.realize_total M - simp only [Relations.realize_total] at this - exact this - decidableLE := by apply Classical.decRel - -@[simp] -lemma toLE_of_LinearOrder - : (@instLinearOrder M instStructure instModel).toLE = @instLE M instStructure := rfl - -instance : @NoMinOrder M instLinearOrder.toLT where - exists_lt := by - have := DLO.realize_noBotOrderSentence M - simp only [noBotOrderSentence] at this - intro a - replace this := this a - simp at this - rcases this with ⟨b, h⟩ - use b - exact h - -instance : @NoMaxOrder M instLinearOrder.toLT where - exists_gt := by - have := DLO.realize_noTopOrderSentence M - simp only [noTopOrderSentence] at this - intro a - replace this := this a - simp at this - rcases this with ⟨b, h⟩ - use b - exact h - -instance : DenselyOrdered M where - dense := by - have := DLO.realize_denselyOrderedSentence M - simp only [denselyOrderedSentence] at this - intro a₁ a₂ h - replace this := this a₁ a₂ - simp only [BoundedFormula.realize_imp, Term.realize_lt, Term.realize_var, - BoundedFormula.realize_ex, BoundedFormula.realize_inf] at this - replace this := this h - rcases this with ⟨a, h₁, h₂⟩ - use a - exact ⟨h₁, h₂⟩ - -end - -theorem aleph0_categorical_of_dlo : aleph0.Categorical Language.order.dlo := by - unfold Categorical - rintro ⟨M⟩ ⟨N⟩ hM hN - simp only at * - apply Nonempty.map toLIso - have : Countable M := by apply mk_le_aleph0_iff.mp; rw [hM] - have : Countable N := by apply mk_le_aleph0_iff.mp; rw [hN] - apply iso_of_countable_dense - -end DLO --end - -end FirstOrder.Language.Order diff --git a/FormalTextbookModelTheory/ForMathlib/Matrix.lean b/FormalTextbookModelTheory/ForMathlib/Data/Fin/VecNotation.lean similarity index 100% rename from FormalTextbookModelTheory/ForMathlib/Matrix.lean rename to FormalTextbookModelTheory/ForMathlib/Data/Fin/VecNotation.lean diff --git a/FormalTextbookModelTheory/ForMathlib/ModelTheory/DLO.lean b/FormalTextbookModelTheory/ForMathlib/ModelTheory/DLO.lean new file mode 100644 index 0000000..0a30b71 --- /dev/null +++ b/FormalTextbookModelTheory/ForMathlib/ModelTheory/DLO.lean @@ -0,0 +1,181 @@ +import Mathlib.SetTheory.Cardinal.Basic +import Mathlib.ModelTheory.Basic +import Mathlib.ModelTheory.Syntax +import Mathlib.ModelTheory.Semantics +import Mathlib.ModelTheory.Satisfiability +import Mathlib.ModelTheory.Bundled +import Mathlib.ModelTheory.Order +import Mathlib.Order.CountableDenseLinearOrder + +import FormalTextbookModelTheory.ForMathlib.ModelTheory.Order +import FormalTextbookModelTheory.ForMathlib.Data.Fin.VecNotation + + +open Cardinal +open FirstOrder Language Structure Theory Order +open Matrix (Vector_eq_VecNotation₂ comp_VecNotation₂) + +namespace FirstOrder.Language + +namespace Order + +section + +variable {M : Type w} [instStructure : Language.order.Structure M] + +/-- +The interpretation of the unique binary relation symbol of the language `Language.order` on a type `M` gives a natural binary relation on `M` and it is written with `≤`. +-/ +instance instLE : LE M where + le := fun x y => instStructure.RelMap leSymb ![x, y] + +/-- +Given a type `M` and `𝓜 : Language.order.Structure`, the `Language.order.Structure M` instance induced by the `LE M` +instance which is induced by `𝓜` is equal to `𝓜`. In other words, for a fixed type `M`, `@orderStructure M` is the +left-inverse of `@instLE M`. +-/ +@[simp] +lemma orderStructure_of_LE : @orderStructure M (@instLE M instStructure) = instStructure := by + ext1 + · funext _ r + exfalso + exact IsEmpty.elim (by infer_instance) r + · funext n r x + match n with + | 0 | 1 | _ + 3 => + exfalso + simp only [Language.order, mk₂_Relations, Sequence₂] at r + exact IsEmpty.elim (by infer_instance) r + | 2 => + rw [Vector_eq_VecNotation₂ x, (by apply Subsingleton.allEq : r = leSymb)] + simp only [orderStructure, LE.le, Structure.relMap_apply₂] + +/-- +By definition, the binary relation `≤` is equal to the interpretation of the unique binary relation symbol of the +language `Language.order`. +-/ +instance : @OrderedStructure Language.order M _ instLE instStructure := by + simp only [OrderedStructure, orderLHom_order, orderStructure_of_LE] + exact @LHom.id_isExpansionOn Language.order M instStructure + +end + +section + +variable {M : Type w} [Language.order.Structure M] +variable {N : Type w} [Language.order.Structure N] + +/-- +An order embedding `φ : M ↪o N`, induces and embedding of structures with the same underlying function. +-/ +def toLEmbedding (φ : M ↪o N) : M ↪[Language.order] N where + toEmbedding := φ.toEmbedding + map_fun' := by + intro n f + exfalso + exact IsEmpty.elim (by infer_instance) f + map_rel' := by + intro n r x + match n with + | 0 | 1 | _ + 3 => + exfalso + simp [Language.order, Sequence₂] at r + exact IsEmpty.elim (by infer_instance) r + | 2 => + rw [Vector_eq_VecNotation₂ x, comp_VecNotation₂ φ.toFun, + (by apply Subsingleton.allEq : r = leSymb), relMap_leSymb, relMap_leSymb] + exact φ.map_rel_iff + +/-- +An order isomorphism `φ : M ≃o N`, induces and isomorphism of structures with the same underlying function. +-/ +def toLIso (φ : M ≃o N) : M ≃[Language.order] N where + toEquiv := φ.toEquiv + map_fun' := (toLEmbedding (φ.toOrderEmbedding)).map_fun' + map_rel' := (toLEmbedding (φ.toOrderEmbedding)).map_rel' + +end + +namespace DLO --region + +section + +variable {M : Type w} [instStructure : Language.order.Structure M] +variable [instModel : M ⊨ Language.order.dlo] + +instance instPreorder : Preorder M where + le := (@instLE M instStructure).le + le_refl := by + apply Relations.realize_reflexive.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [reflexive_mem_dlo] + le_trans := by + apply Relations.realize_transitive.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [transitive_mem_dlo] + +instance instPartialOrder : PartialOrder M where + toPreorder := @instPreorder M instStructure instModel + le_antisymm := by + apply Relations.realize_antisymmetric.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [antisymmetric_mem_dlo] + +noncomputable instance instLinearOrder : LinearOrder M where + toPartialOrder := @instPartialOrder M instStructure instModel + le_total := by + apply Relations.realize_total.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [total_mem_dlo] + decidableLE := by apply Classical.decRel + +-- @[simp] +-- lemma toLE_of_Preorder +-- : (@instPreorder M instStructure instModel).toLE = @instLE M instStructure := rfl + +-- @[simp] +-- lemma toLE_of_PartialOrder +-- : (@instPartialOrder M instStructure instModel).toLE = @instLE M instStructure := rfl + +-- @[simp] +-- lemma toLE_of_LinearOrder +-- : (@instLinearOrder M instStructure instModel).toLE = @instLE M instStructure := rfl + +instance : @NoBotOrder M instLinearOrder.toLE where + exists_not_ge := by + apply Relations.realize_noBot.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [noBotOrder_mem_dlo] + +instance : @NoMinOrder M instLinearOrder.toLT := NoBotOrder.to_noMinOrder M + +instance : @NoTopOrder M instLinearOrder.toLE where + exists_not_le := by + apply Relations.realize_noTop.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [noTopOrder_mem_dlo] + +instance : @NoMaxOrder M instLinearOrder.toLT := NoTopOrder.to_noMaxOrder M + +instance : @DenselyOrdered M instLinearOrder.toLT where + dense := by + apply Relations.realize_denselyOrdered.mp + apply realize_sentence_of_mem Language.order.dlo + simp only [denselyOrdered_mem_dlo] + +end + +theorem aleph0_categorical_of_dlo : aleph0.Categorical Language.order.dlo := by + unfold Categorical + rintro ⟨M⟩ ⟨N⟩ hM hN + simp only at * + apply Nonempty.map toLIso + have : Countable M := by apply mk_le_aleph0_iff.mp; rw [hM] + have : Countable N := by apply mk_le_aleph0_iff.mp; rw [hN] + apply iso_of_countable_dense + +end DLO --end + +end Order + +end FirstOrder.Language diff --git a/FormalTextbookModelTheory/ForMathlib/ModelTheory/Order.lean b/FormalTextbookModelTheory/ForMathlib/ModelTheory/Order.lean new file mode 100644 index 0000000..573bfa7 --- /dev/null +++ b/FormalTextbookModelTheory/ForMathlib/ModelTheory/Order.lean @@ -0,0 +1,78 @@ +import Mathlib.ModelTheory.Semantics +import Mathlib.ModelTheory.Order + +namespace FirstOrder.Language + +section + +variable (L : Language) [L.IsOrdered] + +@[simp] +theorem reflexive_mem_dlo : leSymb.reflexive ∈ L.dlo := by + unfold dlo linearOrderTheory + left; left; rfl + +@[simp] +theorem transitive_mem_dlo : leSymb.transitive ∈ L.dlo := by + unfold dlo linearOrderTheory + left; right; right; left; rfl + +@[simp] +theorem antisymmetric_mem_dlo : leSymb.antisymmetric ∈ L.dlo := by + unfold dlo linearOrderTheory + left; right; left; rfl + +@[simp] +theorem total_mem_dlo : leSymb.total ∈ L.dlo := by + unfold dlo linearOrderTheory + left; right; right; right; rfl + +@[simp] +theorem noBotOrder_mem_dlo : L.noBotOrderSentence ∈ L.dlo := by + unfold dlo linearOrderTheory + right; right; left; rfl + +@[simp] +theorem noTopOrder_mem_dlo : L.noTopOrderSentence ∈ L.dlo := by + unfold dlo linearOrderTheory + right; left; rfl + +@[simp] +theorem denselyOrdered_mem_dlo : L.denselyOrderedSentence ∈ L.dlo := by + unfold dlo linearOrderTheory + right; right; right; rfl + +end + +namespace Relations + +open Structure +open BoundedFormula + +variable {L : Language.{u, v}} [instIsOrdered : L.IsOrdered] +variable {M : Type w} [instStructure : L.Structure M] + +local infix:50 " ≼ " => fun x y : M => @RelMap L M instStructure 2 (@leSymb L instIsOrdered) ![x, y] +local infix:50 " ≺ " => fun x y : M => x ≼ y ∧ ¬ y ≼ x + +@[simp] +theorem realize_noBot : M ⊨ L.noBotOrderSentence ↔ ∀ x, ∃ y, ¬ x ≼ y := by + unfold noBotOrderSentence Sentence.Realize Formula.Realize Term.le + simp only [realize_all, realize_ex, realize_not, realize_rel₂] + rfl + +@[simp] +theorem realize_noTop : M ⊨ L.noTopOrderSentence ↔ ∀ x, ∃ y, ¬ y ≼ x := by + unfold noTopOrderSentence Sentence.Realize Formula.Realize Term.le + simp only [realize_all, realize_ex, realize_not, realize_rel₂] + rfl + +@[simp] +theorem realize_denselyOrdered : M ⊨ L.denselyOrderedSentence ↔ ∀ x y, x ≺ y → ∃ z, x ≺ z ∧ z ≺ y := by + unfold denselyOrderedSentence Sentence.Realize Formula.Realize Term.lt Term.le + simp only [realize_all, realize_imp, realize_inf, realize_rel₂, realize_not, realize_ex] + rfl + +end Relations + +end FirstOrder.Language diff --git a/blueprint/lean_decls b/blueprint/lean_decls index baedaa7..8dacee6 100644 --- a/blueprint/lean_decls +++ b/blueprint/lean_decls @@ -1,16 +1,26 @@ Matrix.Vector_eq_VecNotation₂ Matrix.comp_VecNotation₂ -FirstOrder.Language.Order.DLO.realize_reflexive -FirstOrder.Language.Order.DLO.realize_transitive -FirstOrder.Language.Order.DLO.realize_antisymmetric -FirstOrder.Language.Order.DLO.realize_total -FirstOrder.Language.Order.DLO.realize_denselyOrderedSentence -FirstOrder.Language.Order.DLO.realize_noBotOrderSentence -FirstOrder.Language.Order.DLO.realize_noTopOrderSentence +FirstOrder.Language.reflexive_mem_dlo +FirstOrder.Language.transitive_mem_dlo +FirstOrder.Language.antisymmetric_mem_dlo +FirstOrder.Language.total_mem_dlo +FirstOrder.Language.noBotOrder_mem_dlo +FirstOrder.Language.noTopOrder_mem_dlo +FirstOrder.Language.denselyOrdered_mem_dlo +FirstOrder.Language.Relations.realize_noBot +FirstOrder.Language.Relations.realize_noTop +FirstOrder.Language.Relations.realize_denselyOrdered FirstOrder.Language.Order.instLE FirstOrder.Language.Order.orderStructure_of_LE +FirstOrder.Language.Order.instOrderedStructureOrder_formalTextbookModelTheory FirstOrder.Language.Order.DLO.instPreorder +FirstOrder.Language.Order.DLO.instPartialOrder FirstOrder.Language.Order.DLO.instLinearOrder +FirstOrder.Language.Order.DLO.instNoBotOrder_formalTextbookModelTheory +FirstOrder.Language.Order.DLO.instNoMinOrder_formalTextbookModelTheory +FirstOrder.Language.Order.DLO.instNoTopOrder_formalTextbookModelTheory +FirstOrder.Language.Order.DLO.instNoMaxOrder_formalTextbookModelTheory +FirstOrder.Language.Order.DLO.instDenselyOrdered_formalTextbookModelTheory FirstOrder.Language.Order.toLEmbedding FirstOrder.Language.Order.toLIso FirstOrder.Language.Order.DLO.aleph0_categorical_of_dlo \ No newline at end of file diff --git a/blueprint/print/print.aux b/blueprint/print/print.aux index 4aa5171..3a20813 100644 --- a/blueprint/print/print.aux +++ b/blueprint/print/print.aux @@ -10,26 +10,36 @@ \newlabel{lem:vector-notation}{{1.1.1}{1}{}{theorem.1.1.1}{}} \newlabel{lem:vector-notation-under-composition}{{1.1.2}{1}{}{theorem.1.1.2}{}} \@writefile{toc}{\contentsline {section}{\numberline {1.2}Theories}{1}{section.1.2}\protected@file@percent } -\newlabel{lem:realize-reflexivity}{{1.2.1}{1}{}{theorem.1.2.1}{}} -\newlabel{lem:realize-transitivity}{{1.2.2}{1}{}{theorem.1.2.2}{}} -\newlabel{lem:realize-antisymmetric}{{1.2.3}{1}{}{theorem.1.2.3}{}} -\newlabel{lem:realize-total}{{1.2.4}{1}{}{theorem.1.2.4}{}} -\newlabel{lem:realize-densely-ordered}{{1.2.5}{1}{}{theorem.1.2.5}{}} -\newlabel{lem:realize-no-min}{{1.2.6}{1}{}{theorem.1.2.6}{}} -\newlabel{lem:realize-no-max}{{1.2.7}{1}{}{theorem.1.2.7}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {2}Model Theory and The Rest of Mathlib}{2}{chapter.2}\protected@file@percent } +\newlabel{lem:reflexive_mem_dlo}{{1.2.1}{1}{}{theorem.1.2.1}{}} +\newlabel{lem:transitive_mem_dlo}{{1.2.2}{1}{}{theorem.1.2.2}{}} +\newlabel{lem:antisymmetric_mem_dlo}{{1.2.3}{1}{}{theorem.1.2.3}{}} +\newlabel{lem:total_mem_dlo}{{1.2.4}{1}{}{theorem.1.2.4}{}} +\newlabel{lem:noBotOrder_mem_dlo}{{1.2.5}{1}{}{theorem.1.2.5}{}} +\newlabel{lem:noTopOrder_mem_dlo}{{1.2.6}{1}{}{theorem.1.2.6}{}} +\newlabel{lem:denselyOrdered_mem_dlo}{{1.2.7}{2}{}{theorem.1.2.7}{}} +\newlabel{lem:realize_noBot}{{1.2.8}{2}{}{theorem.1.2.8}{}} +\newlabel{lem:realize_noTop}{{1.2.9}{2}{}{theorem.1.2.9}{}} +\newlabel{lem:realize_denselyOrdered}{{1.2.10}{2}{}{theorem.1.2.10}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {2}Model Theory and The Rest of Mathlib}{3}{chapter.2}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}Instances}{2}{section.2.1}\protected@file@percent } -\newlabel{def:le-instance-language-order}{{2.1.1}{2}{}{theorem.2.1.1}{}} -\newlabel{lem:order-structure-of-le}{{2.1.2}{2}{}{theorem.2.1.2}{}} -\newlabel{def:preorder-dlo}{{2.1.3}{2}{}{theorem.2.1.3}{}} -\newlabel{def:linearorder-dlo}{{2.1.4}{2}{}{theorem.2.1.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {2.2}Homomorphisms}{2}{section.2.2}\protected@file@percent } -\newlabel{lem:to-embedding}{{2.2.1}{2}{}{theorem.2.2.1}{}} -\newlabel{lem:to-isomorphism}{{2.2.2}{2}{}{theorem.2.2.2}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {3}Main Result}{3}{chapter.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Instances}{3}{section.2.1}\protected@file@percent } +\newlabel{def:le-instance-language-order}{{2.1.1}{3}{}{theorem.2.1.1}{}} +\newlabel{lem:order-structure-of-le}{{2.1.2}{3}{}{theorem.2.1.2}{}} +\newlabel{lem:instOrderedStructureOrder_formalTextbookModelTheory}{{2.1.3}{3}{}{theorem.2.1.3}{}} +\newlabel{lem:preorder-dlo}{{2.1.4}{3}{}{theorem.2.1.4}{}} +\newlabel{lem:partial-order-dlo}{{2.1.5}{3}{}{theorem.2.1.5}{}} +\newlabel{lem:linearorder-dlo}{{2.1.6}{3}{}{theorem.2.1.6}{}} +\newlabel{lem:no-bot-order-dlo}{{2.1.7}{3}{}{theorem.2.1.7}{}} +\newlabel{lem:no-min-order-dlo}{{2.1.8}{3}{}{theorem.2.1.8}{}} +\newlabel{lem:no-top-order-dlo}{{2.1.9}{4}{}{theorem.2.1.9}{}} +\newlabel{lem:no-max-order-dlo}{{2.1.10}{4}{}{theorem.2.1.10}{}} +\newlabel{lem:densely-ordered-dlo}{{2.1.11}{4}{}{theorem.2.1.11}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Homomorphisms}{4}{section.2.2}\protected@file@percent } +\newlabel{lem:to-embedding}{{2.2.1}{4}{}{theorem.2.2.1}{}} +\newlabel{lem:to-isomorphism}{{2.2.2}{4}{}{theorem.2.2.2}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Main Result}{5}{chapter.3}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{thm:dlo-aleph0-categorical}{{3.0.1}{3}{}{theorem.3.0.1}{}} -\gdef \@abspage@last{4} +\newlabel{thm:dlo-aleph0-categorical}{{3.0.1}{5}{}{theorem.3.0.1}{}} +\gdef \@abspage@last{6} diff --git a/blueprint/print/print.fdb_latexmk b/blueprint/print/print.fdb_latexmk index 372ed95..73dbd98 100644 --- a/blueprint/print/print.fdb_latexmk +++ b/blueprint/print/print.fdb_latexmk @@ -1,7 +1,7 @@ # Fdb version 4 -["pdflatex"] 1723661794.7511 "print.tex" "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.pdf" "print" 1723661795.69292 0 - "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.aux" 1723661795.4694 2232 b6b67c3fcb3329da2c254c2d8baad30a "pdflatex" - "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.out" 1723661795.4694 935 0e20a0f58d1d7838ffc59f27f356d900 "pdflatex" +["pdflatex"] 1723815716.39049 "print.tex" "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.pdf" "print" 1723815717.48559 0 + "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.aux" 1723815717.22314 2910 6bf91ad4171cfa1daafd8f054c4268cd "pdflatex" + "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.out" 1723815717.22314 935 0e20a0f58d1d7838ffc59f27f356d900 "pdflatex" "/usr/local/texlive/2024/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" "/usr/local/texlive/2024/texmf-dist/fonts/tfm/adobe/zapfding/pzdr.tfm" 1136768653 1528 f853c4d1b4e0550255e02831fdc8496f "" "/usr/local/texlive/2024/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 "" @@ -83,13 +83,13 @@ "/usr/local/texlive/2024/texmf-dist/web2c/texmf.cnf" 1719785820 42007 0b741a3c21a5ca32b40e3846e75b3548 "" "/usr/local/texlive/2024/texmf-var/web2c/xetex/xelatex.fmt" 1722380463 10868501 e521c25442cce99c56ff9a77d153050d "" "/usr/local/texlive/2024/texmf.cnf" 1722380410.43027 455 5b996dcaa0eb4ef14a83b026bc0a008c "" - "chapters/basics.tex" 1723659066.66334 2441 b48c6cf0620ad41684aeac4b58dc95e7 "" - "chapters/main.tex" 1723661787.37893 321 18d95ad5a64d5d1a73dc8caacf660dd9 "" - "chapters/model_theory.tex" 1723659684.69707 2076 ed78731b4190e4a400ab523aaea36373 "" + "chapters/basics.tex" 1723812304.01876 3240 439ee73da8dd9acc44433db5dfacbb11 "" + "chapters/main.tex" 1723815095.35872 389 07f785e08b4826fa5ebcb2e51bb44484 "" + "chapters/model_theory.tex" 1723815297.81403 5093 b77939e0766bbf0b48b06fe4aab07ca9 "" "content.tex" 1723660673.45768 1004 792b81f5308bf1a333bd495ff2e0fd5a "" "macros/common.tex" 1722759673.52174 604 ca3e9443483cfefd693019fb112f2d18 "" "macros/print.tex" 1722422546.45932 1101 87627b2ec24fef68edc71c13f43f7bab "" - "print.tex" 1722837065.5925 1131 bf5d368546e76888c21bf562766212eb "" + "print.tex" 1723815697.02348 1138 2b86096090134771126de5cfa2eeef68 "" (generated) "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.aux" "/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.log" diff --git a/blueprint/print/print.log b/blueprint/print/print.log index 197a8f2..a85d99b 100644 --- a/blueprint/print/print.log +++ b/blueprint/print/print.log @@ -1,4 +1,4 @@ -This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2024) (preloaded format=xelatex 2024.7.31) 14 AUG 2024 21:56 +This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2024) (preloaded format=xelatex 2024.7.31) 16 AUG 2024 16:41 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -683,21 +683,25 @@ LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be (Font) scaled to size 6.99925pt on input line 9. LaTeX Font Info: Font shape `TU/latinmodern-math.otf(3)/m/n' will be (Font) scaled to size 4.99947pt on input line 9. -) + [1 -] +]) + +[2] Chapter 2. -(./chapters/model_theory.tex) +(./chapters/model_theory.tex -[2 +[3 -] +]) + +[4] Chapter 3. (./chapters/main.tex)) -[3 +[5 ] (/home/metinersin/projects/FormalTextbookModelTheory/blueprint/print/print.aux) @@ -709,13 +713,13 @@ Package rerunfilecheck Info: File `print.out' has not changed. (rerunfilecheck) Checksum: 0E20A0F58D1D7838FFC59F27F356D900;935. ) Here is how much of TeX's memory you used: - 16792 strings out of 474240 - 309351 string characters out of 5742353 - 1929557 words of memory out of 5000000 - 39267 multiletter control sequences out of 15000+600000 + 16802 strings out of 474240 + 309613 string characters out of 5742353 + 1928557 words of memory out of 5000000 + 39277 multiletter control sequences out of 15000+600000 563440 words of font info for 85 fonts, out of 8000000 for 9000 1348 hyphenation exceptions out of 8191 - 90i,6n,116p,542b,463s stack positions out of 10000i,1000n,20000p,200000b,200000s + 90i,6n,116p,542b,481s stack positions out of 10000i,1000n,20000p,200000b,200000s Output written on /home/metinersin/projects/FormalTextbookModelTheory/blueprint -/print/print.pdf (4 pages). +/print/print.pdf (6 pages). diff --git a/blueprint/print/print.pdf b/blueprint/print/print.pdf index df19e0930bddfe9c38bdcda56c8123d33d99bea1..27000bbe1267430ed9f5506b2e3536f3226ac35f 100644 GIT binary patch delta 28864 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 delta 21640 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 diff --git a/blueprint/print/print.synctex.gz b/blueprint/print/print.synctex.gz index 1371aed044316f937b84b85dd4241060e4602708..6626378e19f3faae6aac37da17868ae42d574739 100644 GIT binary patch literal 10335 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 VxxYCc34^|%G!vnA8I8li{eJ~PT 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 k{2uve8q4s#0yM_OR;LQOs_N<<|LNO*|Ht$K z{`2|1y7bGV_uf6+f4;w2y;Mf&GEBrKnjWvhQas3ucoinc`N{D*$#KZVLY&As)5&x) z-&aqr!c7_H+52HC_SF+dk;n^??yGOb>wTZK>f)|Q_SMsyB-|c}Ur#<1*;*8$*zT)~ zAAk7n{+oSuGnW7BY!a1ea;+QftNj=IU3Dc9X&NqnC01o#9E*p?@=x#QWeAA>`|?Xz zKy-=VXZz@h7C8D&@7(Cg=)2V|4X8(ph`vvwK0~4)<1Cft%vrZHqs!zj$#BhLa9Ahx z%iuJ*a{=vXpzW!?nG3m@J^EFbsRr%lR<3h8oi5rf^QaTw56C;^@AJS|gN_HW)`!<& zsiC`WInE_q@7r3OEaPo(KhDD9QBa5kgD6Z)u%0A{-fHCaee+r;_1DNR+p^fL%3UFX zlU}BU7b+p6LoKH7RAcN!_hf7xS}q#IK-5#D4#dMFXCBux_n$8}qkgM_|1SDt z^oiuT$M<)PaYFhDAhk;v7IQU|j5*HqXJlF$Ok=DQ)M1C8deWgryKSOT-&}-zokRA> zwehHB^{{xXT`O~hCpQH5C}W8I7RMfIqYYu-t`70}f$ek1igTF6HT~RPlP6v};AmxV zlsm#^6=rz`_lqDepz~j|=vU_ibboic&xz=t&3RxP|Kn7N_9{eOB7!*EmSMIMPC6Cl z*6Gkc8@)T>-tCnnH0bA+=&Wt9%HwPmuVrtT7Y$-lIJejr)=@62E|2mtb`bY2#~p#8 zMSy?5?T)3zUra1~jHgl7a1lSX7ct5RE#+BQyu1V_;w=6Qq9mxV#xf)xpH1eI+0=Bm zdkQlB$Y!!^lkRh%TNYuqjZ2TP6^x!asC>;iVGoAFGJT@G26?|JI4QEK+GA(93o7N@TRg%;!K2fnF&gG<$1&-U$)9J^3A~Sn~P+|ncpKvPQ3zuj7t42!W8V z!bX(xX)qapY89*g*@$Q~9KDi+1}_X+L7! zgn!!(Tr;`4p=dSpp{r?wt*yRu*@YU*IgdSD&pYQ^kA_7H!v21UCs;Jsk zDPU+Si`l1ICE6a2npbR1W|OpT@Ey~eL`KMtVyi+7wt{4bHdz~RegXo1*$<4%W1v>< z_s&MZU??Cd)}F-Mpx$vcS5daQHtH7>YcFpMHR5vQ(7D9>3^>y9{U*8rFR1X!8{N_# zB7a;tCq#jKocy8fFViq-VmD#@D%imXM0qhzH#uCA@(evxQ^-u?6a!5lm!l!+7bjAD z!#0n}`U;}nIH-B<{+jBw)4Y8+-ojnFgoSlR{kl0=YOd42Ja*v%Y##KRr+8F2_zn5F-s8mil!h!F1vJa+a!m1Y<&%({qF<$}Quw%X^4d=ES z$2Cz=T=i4b5+3pJ%<#pXf#P!FKyf*e#PRJ~e-cz*Uuj!ZnUObOyV&*3#rmS|z;pVH zh4oi^fi&a@3PYY=4w`2_c%Dh92bX0Jc&xJ5F%3~vn$#$;=WY?AcnVmXCyctqP<0Ie z`aX}^2AYDV8V}7YOo<4dX-_KxtszeTg+&Y)WL*B67qS1qkItE=|E2n+jv`H*u0O3v z?E!F6nFk`hFV^cgd(ei1)HY9@y2sK+qt}h4S|&*f6G=+N+dR#SO%!iaUCi2R*Laju zS*LBXVU`5(0kL_WI8H^X{vr?^?v4d|rl73j&Cxba%Fm+=rrQ->SX z9G>Mr%gYbosBuZkw+AkX4tLD)IovUni67+~ueiJ_IK{0wesOCkiC>0LtB*XC7i-t* zK7cKhHmX z559WPTbJ?<94J=mpW7%d;TLsn(#r990BL>C;fWj;WvsresxMU9i6|RK*NNzvtIkAK zzqK=QV+j$(vp^v`xchlYO_Bpbc5E&P_f*B8zL;qYmJCObeX1AXZZ`s-+Ks@+a)dJ9 zcoFV(Bk-x+2z)F@NW(K1!s8Im@{?ufPVl+i416pxya2&qTq<}x5XQ`n;hnBX)Xi6m z36~ndUN82X1}WG zTBoUV0;(E~FsPb_NfSSFTe+x-S|_M`2C5oq4yu-EF3a;zleG>`CCg`Y$nt?)mgk%% zYn`A0K4tv E|30sBxBvhE delta 287 zcmdmX7Kf>PJW;+Ik{4nck(}3<;nY1Bo!ob zQgf|}QWJABt5S7KiW2jRGfOhdGD|9_fHkOrHPp))O}1B+o4ig+oE2n@I#^UdUVHLh zRXJX`?);L(oXI!U6(&bW@=l&FuQ1s_O>*)>d0B|vnqW-|3VM^*0)-0{L?FTnVBs1C zj>+p3WGCyXOG*hLJ1H+;H#e~Y;ux^f&B}^)jFaQ^IYf=8WN7xVhh(JY7p3M-$SPn;ugs;zdH}2bV8;Le diff --git a/blueprint/web/dep_graph_document.html b/blueprint/web/dep_graph_document.html index 2158c80..57d456e 100644 --- a/blueprint/web/dep_graph_document.html +++ b/blueprint/web/dep_graph_document.html @@ -91,22 +91,142 @@

Dependencies

-
+
- +
+ + + +
+
+ + + + +
+
+ + + +
+
+ + + + +
+
+ + + +
+
+ + + + +
+
+ + + +
+
+ + +