Documentation

Deontic.CJ1997characterization

The system of Carmo and Jones 1997 #

def avoid {α : Type u_1} [Fintype α] [DecidableEq α] (eo : Option α) :
Finset αFinset (Finset α)
Equations
Instances For
    def stayAlive {α : Type u_1} [Fintype α] [DecidableEq α] (e : α) :
    Finset αFinset (Finset α)
    Equations
    Instances For
      def stayAlive' {n : } (e : Fin n) :
      Finset (Fin n)Finset (Finset (Fin n))
      Equations
      Instances For
        def alive₀ (α : Type u_1) [Fintype α] [DecidableEq α] :
        Finset αFinset (Finset α)
        Equations
        Instances For
          def alive (n : ) :
          Finset (Fin n)Finset (Finset (Fin n))

          A version of stayAlive where e is missing, or if you will, e = n ∉ Fin n.

          Equations
          Instances For

            This shows that the system studied in "A new approach to contrary-to-duty obligations" (1997) in 1996 has infinitely many models. June 4, 2025.

            def small₂ {n : } (A : Finset (Fin n)) :
            Equations
            Instances For
              theorem card_ge_two {k : } (A : Finset (Fin k)) :
              2 A.card aA, bA, a b

              A convenient companion lemma for card_le_one.

              def ccss {n : } (B A : Finset (Fin n)) :

              A is a conditional cosubsingleton within B.

              Equations
              Instances For
                def cocos {n : } (B : Finset (Fin n)) :

                A is a cocos in B if it's not a subset of B, or else is a cosubsingleton of B.

                Equations
                Instances For

                  Although alive and cocos are the same type of thing, they are quite different. However, alivecocos so alive is covering; and indeed stayAlive and noObligations are too by our main theorem.

                  def ifsub {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) :
                  Finset (Fin n)Finset (Finset (Fin n))

                  A is relatively obligatory given B. A ∈ ifsub ob B means that A ∈ ob B, if it should happen that A ⊆ B.

                  Equations
                  Instances For
                    theorem ifsub_apply {n : } {ob : Finset (Fin n)Finset (Finset (Fin n))} {A B : Finset (Fin n)} (h : A ifsub ob B) (h₀ : A B) :
                    A ob B
                    def covering {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) :

                    ob has the drop_at_most_one property if whenever a subset is obligatory, it is a relative cosubsingleton

                    Equations
                    Instances For
                      theorem covering_def {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) :
                      covering ob ∀ (C : Finset (Fin n)), ob C cocos C
                      def inter_ifsub {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) (A : Finset (Fin n)) :

                      A context A is inter_ifsub obligatory if A is obligatory in any larger context.

                      Equations
                      Instances For
                        def cosubsingleton {n : } (A : Finset (Fin n)) :
                        Equations
                        Instances For
                          def bad {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) (a : Fin n) :

                          Not only is a "bad" but there is an obligation that singles it out.

                          Equations
                          Instances For
                            def quasibad {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) (a : Fin n) :
                            Equations
                            Instances For
                              def noObligations' (α : Type u_1) [Fintype α] [DecidableEq α] :
                              Finset αFinset (Finset α)
                              Equations
                              Instances For
                                def noObligations (n : ) :
                                Finset (Fin n)Finset (Finset (Fin n))

                                The model according to which there are no obligations at all.

                                Equations
                                Instances For
                                  theorem diff_diff {n : } {X Y : Finset (Fin n)} :
                                  X Y = Y \ (Y \ X)
                                  structure BDE {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} :

                                  Putting the commonly combined axioms 5(b)(d)(e) into a structure.

                                  • b5 : B5 ob
                                  • d5 : D5 ob
                                  • e5 : E5 ob
                                  Instances For
                                    theorem insert_single_ob_pair {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} {A : Finset (Fin k)} (d5 : D5 ob) {a₁ a₂ : Fin k} (ha₁₂ : a₁ a₂) (h : inter_ifsub ob A) :
                                    A {a₂} ob (A {a₁, a₂})

                                    If we add two worlds to a inter_ifsub set, then each one is preferable to the other.

                                    theorem single_ob_pair₁ {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (c5 : C5 ob) (d5 : D5 ob) (e5 : E5 ob) {A : Finset (Fin k)} {a₁ a₂ : Fin k} (ha₂ : a₁ a₂) (ha₁ : a₂A) (hcorr : {a₁, a₂} ob {a₁, a₂}) (h : inter_ifsub ob A) :
                                    {a₁} ob {a₁, a₂}
                                    theorem single_ob_pair {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (c5 : C5 ob) (d5 : D5 ob) (e5 : E5 ob) {A : Finset (Fin k)} {a₁ a₂ : Fin k} (ha₂ : a₁ a₂) (ha₀ : a₁A) (ha₁ : a₂A) (hcorr : {a₁, a₂} ob {a₁, a₂}) (h : inter_ifsub ob A) :
                                    {a₁} ob {a₁, a₂} {a₂} ob {a₁, a₂}

                                    A weaker version using the weaker C5 axiom.

                                    theorem C5_of_C5Strong {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (c5 : C5Strong ob) :
                                    C5 ob
                                    structure ACDE {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} :
                                    Instances For
                                      theorem semiglobal_holds {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (f : ACDE) {A : Finset (Fin k)} {a₁ a₂ : Fin k} (ha₂ : a₁ a₂) (ha₀ : a₁A) (ha₁ : a₂A) (h : inter_ifsub ob A) :
                                      {a₁, a₂}ob {a₁, a₂}

                                      If A is missing a self-obligatory pair then A is not inter_ifsub. A key use of the (too) strong version C5Strong.

                                      structure ADE {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} :
                                      • a5 : A5 ob
                                      • d5 : D5 ob
                                      • e5 : E5 ob
                                      Instances For
                                        structure ABCDE {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} :
                                        Instances For
                                          theorem global_holds_specific {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) {A : Finset (Fin k)} {a₁ a₂ : Fin k} (h₁ : a₁A) (h₂ : a₂A) (h₁₂ : a₁ a₂) :

                                          If A is small₂ (missing a pair of worlds) then A is not inter_ifsub.

                                          theorem obSelfSdiff_of_bad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : BDE) {a : Fin k} (hbad : bad ob a) {Y : Finset (Fin k)} (han : Y \ {a} ) :
                                          Y \ {a} ob Y
                                          theorem obSelf_of_obSelf {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : BDE) {X Y : Finset (Fin k)} (hX : X ob X) (hY : Y ) :
                                          Y ob Y
                                          theorem obSelf_univ {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (d5 : D5 ob) (e5 : E5 ob) (a : Fin k) (ha : Finset.univ \ {a} ob Finset.univ) :
                                          theorem sdiff_union_sdiff {k : } (A B C : Finset (Fin k)) :
                                          A \ C A \ B B \ C
                                          theorem diff_ne {k : } {a : Fin k} {X : Finset (Fin k)} (ha : X {a}) (he : X ) :
                                          X \ {a}
                                          theorem sdiff_union_sdiff_eq {k : } {a : Fin k} {X : Finset (Fin k)} (ha : a X) :
                                          theorem local_of_global_theoretical {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (d5 : D5 ob) (e5 : E5 ob) (h : ∀ (A : Finset (Fin k)), (∀ (B : Finset (Fin k)), A ifsub ob B)∀ (B : Finset (Fin k)), ccss B A) {A B : Finset (Fin k)} (hBC₁ : A ifsub ob B) :
                                          ccss B A

                                          If every everywhere-inter_ifsub set is a cosubsingleton of univ then every somewhere-inter_ifsub set is a cosubsingleton there. Because we can just union up with the relative complement.

                                          This version is "theoretical" in that it is not so easy to apply but has a beautiful logical structure.

                                          theorem local_of_global' {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (d5 : D5 ob) (e5 : E5 ob) {B C : Finset (Fin k)} (hBC₀ : (C \ B).card 2) (hBC₁ : B C) (hBC₂ : B ob C) :
                                          ∃ (A : Finset (Fin k)), A.card 2 inter_ifsub ob A

                                          A trivial consequence of local_of_global_theoretical.

                                          theorem local_of_global {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (d5 : D5 ob) (e5 : E5 ob) (large_of_ob : ∀ (A : Finset (Fin k)), inter_ifsub ob Acosubsingleton A) :

                                          Given that no small₂ set is inter_ifsub (which is not automatic here since we don't assume B5 and C5), an obligatory set cannot be more than 1 world away from its larger context.

                                          If every universally inter_ifsub set is cosubsingle then every somewhere inter_ifsub set is there-cosubsingle.

                                          theorem global_holds {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) (A : Finset (Fin k)) (hs : small₂ A) :

                                          If A is small₂ then A is not inter_ifsub. This is just some set-wrangling on top of global_holds_specific.

                                          theorem local_holds {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) :

                                          A direct consequence of global_holds and local_of_global.

                                          def local_holds_apply {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) {B C : Finset (Fin k)} :
                                          C ob BC cocos B

                                          Allow B and C to be implicit in local_holds.

                                          Equations
                                          • =
                                          Instances For
                                            theorem obSelf_of_ob_of_subset {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (b5 : B5 ob) {X Y : Finset (Fin k)} (hd : Y X) (h : X ob Y) :
                                            Y ob Y

                                            An obvious consequence of B5.

                                            theorem not_ob_of_almost {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (H₁ : ∀ (a : Fin k), ¬quasibad ob a) {X Y : Finset (Fin k)} (h₀ : (Y \ X).card = 1) :
                                            Xob Y
                                            theorem obSelf_of_ob_of_almost_subset {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (b5 : B5 ob) (H₁ : ∀ (a : Fin k), ¬quasibad ob a) {X Y : Finset (Fin k)} (h : X ob Y) (hd : (Y \ X).card 1) :
                                            Y ob Y
                                            theorem bad_of_quasibad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (b5 : B5 ob) (e5 : E5 ob) (a : Fin k) (h : quasibad ob a) :
                                            bad ob a

                                            The anonymous referee's proof.

                                            theorem sub_alive {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (b5 : B5 ob) (H₁ : ∀ (a : Fin k), ¬quasibad ob a) (Y : Finset (Fin k)) :
                                            ob Y alive k Y
                                            theorem alive_sub {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) (H₀ : ob noObligations k) (H₁ : ∀ (a : Fin k), ¬quasibad ob a) (Y : Finset (Fin k)) :
                                            alive k Y ob Y
                                            theorem alive_of_no_quasibad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) (H₀ : ob noObligations k) (H₁ : ∀ (a : Fin k), ¬quasibad ob a) :
                                            ob = alive k
                                            theorem unique_bad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) {a b : Fin k} (ha : bad ob a) (hb : bad ob b) :
                                            a = b
                                            theorem bad_cosubsingleton_of_ob {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) {a : Fin k} (hbad : bad ob a) {X Y : Finset (Fin k)} (h' : X Y ob X) :
                                            X Y = X X Y = X \ {a}
                                            theorem obSelf_of_obSelfSdiff {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : BDE) {X : Finset (Fin k)} {a : Fin k} (h : X \ {a} ob X) (han : X \ {a} ) :
                                            X ob X
                                            theorem obSelf_of_bad.nonsingle {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : BDE) {a : Fin k} (hbad : bad ob a) {X : Finset (Fin k)} (ha : X {a}) (he : X ) :
                                            X ob X

                                            If X contains an element b≠a where a is a given bad world, then X is self-obligatory.

                                            theorem obSelf_of_bad.single {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (b5 : B5 ob) (d5 : D5 ob) (e5 : E5 ob) {a : Fin k} (hbad : bad ob a) :
                                            {a} ob {a}

                                            Bad singletons are self-obligatory. Proved from first principles.

                                            theorem obSelf_of_bad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (b5 : B5 ob) (d5 : D5 ob) (e5 : E5 ob) (hbad : ∃ (a : Fin k), bad ob a) {X : Finset (Fin k)} (he : X ) :
                                            X ob X
                                            theorem sub_stayAlive_of_bad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) {a : Fin k} (hbad : bad ob a) (Y : Finset (Fin k)) :
                                            ob Y stayAlive a Y
                                            theorem stayAlive_sub_of_bad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (a5 : A5 ob) (b5 : B5 ob) (d5 : D5 ob) (e5 : E5 ob) {a : Fin k} (hbad : bad ob a) (Y : Finset (Fin k)) :
                                            stayAlive a Y ob Y
                                            theorem stayAlive_of_bad {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) {a : Fin k} (hbad : bad ob a) :
                                            theorem models_ofCJ_1997 {k : } {ob : Finset (Fin k)Finset (Finset (Fin k))} (t : ABCDE) :
                                            (∃ (a : Fin k), ob = stayAlive a) ob = alive k ob = noObligations k

                                            There are only three models of CJ 1997 for a given n ≥ 1: stayAlive, alive, noObligations.

                                            theorem models_ofCJ_1997₀ (ob : Finset (Fin 0)Finset (Finset (Fin 0))) (a5 : A5 ob) :
                                            theorem setsFin1 (X : Finset (Fin 1)) (h₀ : X {0}) :
                                            X =
                                            theorem models_ofCJ_1997₁ (ob : Finset (Fin 1)Finset (Finset (Fin 1))) (a5 : A5 ob) (b5 : B5 ob) :
                                            (∃ (a : Fin 1), ob = stayAlive a) ob = alive 1 ob = noObligations 1

                                            An exhaustive list of models of A5B5 over Fin 1. The first two alternatives are actually the same

                                            theorem models_ofCJ_1997_equiv {n : } (ob : Finset (Fin n)Finset (Finset (Fin n))) :
                                            A5 ob B5 ob C5Strong ob D5 ob E5 ob (∃ (a : Fin n), ob = stayAlive a) ob = alive n ob = noObligations n