Read-only archive. Publishing has closed. GitHub
xxzf15qm

Published by @sam

Created

import Axiom
import A.t0d1zdc3
import A.gwcwyrvb
import A.a52pkb71
import A.qszr71sj

open a52pkb71
open qszr71sj
open jz5twd51

open t0d1zdc3
open gwcwyrvb

namespace xxzf15qm

rigid universal Person extends Object := "person"
universal Child extends Person := "child"
rigid universal Murder extends Process := "murder"
rigid universal PunishmentSpecification extends GenericallyDependentContinuant := "punishment specification"

relation MurdersIn : Person → Person → Murder := "murders in"
relation DeservesPunishmentFor : Person → Process → PunishmentSpecification :=
  "deserves punishment specification for"
relation GreaterPunishmentThan : PunishmentSpecification → PunishmentSpecification := "is greater than"
relation NonAgePunishmentRelevantCircumstances : Murder := "punishment relevant circumstances other than victim's age"

structure MurderCase where
  murder : Murder
  murderer : Person
  victim : Person
  punishment : PunishmentSpecification
  murders_in :
    MurdersIn murderer victim murder
  deserved_punishment :
    DeservesPunishmentFor murderer murder punishment

def VictimIsChild (mc : MurderCase) :=
  ∃ t, Child.At mc.victim t ∧ OccupiesTemporalRegion mc.murder t

def SameNonVictimAgeCircumstances (mc1 mc2 : MurderCase) :=
  (NonAgePunishmentRelevantCircumstances mc1.murder) ↔ (NonAgePunishmentRelevantCircumstances mc2.murder)

def ChildMurderDeservesGreaterPunishmentThanNonChildMurder : Prop :=
  ∀ mc1 mc2 : MurderCase, SameNonVictimAgeCircumstances mc1 mc2 →
    VictimIsChild mc1 → ¬ VictimIsChild mc2 →
      GreaterPunishmentThan mc1.punishment mc2.punishment

def Murderer : Type := "The Marjory Stoneman Douglas High School shooter"
def ChildVictim : Type := "Alyssa Alhadeff"
def ChildMurder : Type := "the murder of Alyssa Alhadeff"
def ChildCasePunishmentSpec : Type :=
  "the punishment specification deserved for the murder of Alyssa Alhadeff"

def AdultVictim : Type := "Chris Hixon"
def AdultMurder : Type := "the murder of Chris Hixon"
def AdultCasePunishmentSpec : Type :=
  "the punishment specification deserved for the murder of Chris Hixon"

structure TwoConcreteMurderCases : Prop where
  child_case_involvement :
    MurdersIn Murderer ChildVictim ChildMurder
  child_case_deserved_punishment :
    DeservesPunishmentFor Murderer ChildMurder ChildCasePunishmentSpec
  child_case_victim_is_child :
    ∃ t, Child.At ChildVictim t ∧ OccupiesTemporalRegion ChildMurder t
  non_child_case_involvement :
    MurdersIn Murderer AdultVictim AdultMurder
  non_child_case_deserved_punishment :
    DeservesPunishmentFor Murderer AdultMurder AdultCasePunishmentSpec
  non_child_case_victim_is_not_child :
    ¬ ∃ t, Child.At AdultVictim t ∧ OccupiesTemporalRegion AdultMurder t
  same_non_victim_age_circumstances :
    NonAgePunishmentRelevantCircumstances ChildMurder ↔
      NonAgePunishmentRelevantCircumstances AdultMurder

theorem child_case_deserves_greater_punishment
    (logic_is_actual : LogicIsActual)
    (principle : A ChildMurderDeservesGreaterPunishmentThanNonChildMurder)
    (cases : A TwoConcreteMurderCases) :
    A (GreaterPunishmentThan
      ChildCasePunishmentSpec
      AdultCasePunishmentSpec) := by
  exact
    logic_is_actual.mp _ _
      (logic_is_actual.mp _ _
        (logic_is_actual.actual_intro _
          (fun (principle : ChildMurderDeservesGreaterPunishmentThanNonChildMurder)
               (cases : TwoConcreteMurderCases) => by
            letI : Person.Is Murderer := cases.child_case_involvement.inst0
            letI : Person.Is ChildVictim := cases.child_case_involvement.inst1
            letI : Murder.Is ChildMurder := cases.child_case_involvement.inst2
            letI : PunishmentSpecification.Is ChildCasePunishmentSpec :=
              cases.child_case_deserved_punishment.inst2
            letI : Person.Is AdultVictim := cases.non_child_case_involvement.inst1
            letI : Murder.Is AdultMurder := cases.non_child_case_involvement.inst2
            letI : PunishmentSpecification.Is AdultCasePunishmentSpec :=
              cases.non_child_case_deserved_punishment.inst2
            let childCase : MurderCase :=
              { murder := ChildMurder
                murderer := Murderer
                victim := ChildVictim
                punishment := ChildCasePunishmentSpec
                murders_in := cases.child_case_involvement
                deserved_punishment := cases.child_case_deserved_punishment }
            let nonChildCase : MurderCase :=
              { murder := AdultMurder
                murderer := Murderer
                victim := AdultVictim
                punishment := AdultCasePunishmentSpec
                murders_in := cases.non_child_case_involvement
                deserved_punishment := cases.non_child_case_deserved_punishment }
            have sameCircumstances : SameNonVictimAgeCircumstances childCase nonChildCase :=
              cases.same_non_victim_age_circumstances
            have childVictimIsChild : VictimIsChild childCase :=
              cases.child_case_victim_is_child
            have nonChildVictimIsNotChild : ¬ VictimIsChild nonChildCase :=
              cases.non_child_case_victim_is_not_child
            exact principle childCase nonChildCase
              sameCircumstances
              childVictimIsChild
              nonChildVictimIsNotChild))
        principle)
      cases

end xxzf15qm

Jump to declaration

Filter file declarations by leaf or qualified name

xxzf15qmPublished by @sam21 declarationsPress / to search
© 2026 Coherence LabsPrivacy PolicyTerms of Service