@@ -228,6 +228,19 @@ instance [hZ : H.HasZ] : Entailment.HasAxiomZ H where
228228 . use (λ b => if hZ.p = b then φ else (.atom b));
229229 simp;
230230
231+ class HasM (H : Hilbert α) where
232+ p : α
233+ mem_M : Axioms.M (.atom p) ∈ H.axioms := by tauto;
234+
235+ instance [hM : H.HasM] : Entailment.HasAxiomM H where
236+ M φ := by
237+ apply maxm;
238+ use Axioms.M (.atom hM.p);
239+ constructor;
240+ . exact hM.mem_M;
241+ . use (λ b => if hM.p = b then φ else (.atom b));
242+ simp;
243+
231244end
232245
233246protected abbrev KT : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.T (.atom 0 )}⟩
@@ -261,12 +274,31 @@ instance : (Hilbert.KTB).HasT where p := 0
261274instance : (Hilbert.KTB).HasB where p := 0
262275instance : Entailment.Modal.KTB (Hilbert.KTB) where
263276
277+ protected abbrev KM : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.M (.atom 0 )}⟩
278+ instance : (Hilbert.KM).HasK where p := 0 ; q := 1 ;
279+ instance : (Hilbert.KM).HasM where p := 0
280+ instance : Entailment.Modal.KM (Hilbert.KM) where
281+
282+ instance K_weakerThan_KM : Hilbert.K ⪯ Hilbert.KM := weakerThan_of_dominate_axioms $ by simp;
264283
265284protected abbrev K4 : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.Four (.atom 0 )}⟩
266285instance : (Hilbert.K4).HasK where p := 0 ; q := 1 ;
267286instance : (Hilbert.K4).HasFour where p := 0
268287instance : Entailment.Modal.K4 (Hilbert.K4) where
269288
289+ protected abbrev K4Point1 : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.Four (.atom 0 ), Axioms.M (.atom 0 )}⟩
290+ instance : (Hilbert.K4Point1).HasK where p := 0 ; q := 1 ;
291+ instance : (Hilbert.K4Point1).HasFour where p := 0
292+ instance : (Hilbert.K4Point1).HasM where p := 0
293+ instance : Entailment.Modal.K4Point1 (Hilbert.K4Point1) where
294+
295+ instance K_weakerThan_K4Point1 : Hilbert.K ⪯ Hilbert.K4Point1 := weakerThan_of_dominate_axioms $ by simp;
296+
297+ noncomputable instance {H : Hilbert _} [Hilbert.K4Point1 ⪯ H] : Entailment.Modal.K4Point1 H where
298+ K _ _ := Entailment.WeakerThan.pbl (𝓢 := Hilbert.K4Point1) (by simp) |>.some
299+ Four _ := Entailment.WeakerThan.pbl (𝓢 := Hilbert.K4Point1) (by simp) |>.some
300+ M _ := Entailment.WeakerThan.pbl (𝓢 := Hilbert.K4Point1) (by simp) |>.some
301+
270302protected abbrev K4Point2 : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.Four (.atom 0 ), Axioms.WeakPoint2 (.atom 0 ) (.atom 1 )}⟩
271303instance : (Hilbert.K4Point2).HasK where p := 0 ; q := 1 ;
272304instance : (Hilbert.K4Point2).HasFour where p := 0
@@ -335,7 +367,16 @@ instance : (Hilbert.S4).HasT where p := 0
335367instance : (Hilbert.S4).HasFour where p := 0
336368instance : Entailment.Modal.S4 (Hilbert.S4) where
337369
338- lemma K4_weakerThan_S4 : Hilbert.K4 ⪯ Hilbert.S4 := weakerThan_of_dominate_axioms $ by simp;
370+ instance K4_weakerThan_S4 : Hilbert.K4 ⪯ Hilbert.S4 := weakerThan_of_dominate_axioms $ by simp;
371+
372+ protected abbrev S4Point1 : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.T (.atom 0 ), Axioms.Four (.atom 0 ), Axioms.M (.atom 0 )}⟩
373+ instance : (Hilbert.S4Point1).HasK where p := 0 ; q := 1 ;
374+ instance : (Hilbert.S4Point1).HasT where p := 0
375+ instance : (Hilbert.S4Point1).HasFour where p := 0
376+ instance : (Hilbert.S4Point1).HasM where p := 0
377+ instance : Entailment.Modal.S4Point1 (Hilbert.S4Point1) where
378+
379+ instance K4Point1_weakerThan_S4Point1 : Hilbert.K4Point1 ⪯ Hilbert.S4Point1 := weakerThan_of_dominate_axioms $ by simp;
339380
340381protected abbrev S4Point2 : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.T (.atom 0 ), Axioms.Four (.atom 0 ), Axioms.Point2 (.atom 0 )}⟩
341382instance : (Hilbert.S4Point2).HasK where p := 0 ; q := 1 ;
@@ -421,7 +462,6 @@ instance : (Hilbert.KTc).HasK where p := 0; q := 1;
421462instance : (Hilbert.KTc).HasTc where p := 0
422463instance : Entailment.Modal.KTc (Hilbert.KTc) where
423464
424-
425465protected abbrev KD4Point3Z : Hilbert ℕ := ⟨{Axioms.K (.atom 0 ) (.atom 1 ), Axioms.D (.atom 0 ), Axioms.Four (.atom 0 ), Axioms.WeakPoint3 (.atom 0 ) (.atom 1 ), Axioms.Z (.atom 0 )}⟩
426466instance : (Hilbert.KD4Point3Z).HasK where p := 0 ; q := 1 ;
427467instance : (Hilbert.KD4Point3Z).HasD where p := 0
0 commit comments