-- https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/'Who.20Killed.20Aunt.20Agatha'.20puzzle
-- https://gist.github.com/utensil/17159725e5335f6a9688b7443fe0b3aa
-- https://www.tptp.org/cgi-bin/SystemOnTPTP
import Batteries.Tactic.Init
-- import Batteries.Tactic.RCases
-- import Mathlib.Tactic
-- import Mathlib.Logic.Basic
variable (u : Type )
variable (lives : u β Prop )
variable (killed hates richer : u β u β Prop )
variable (agatha butler charles : u)
variable (pel55_1 : β x : u, lives x β§ killed x agatha)
-- variable (pel55_2_1 : lives agatha)
-- variable (pel55_2_2 : lives butler)
-- variable (pel55_2_3 : lives charles)
variable (pel55_3 : β x, lives x β x = agatha β¨ x = butler β¨ x = charles)
variable (pel55_4 : β x y, killed x y β hates x y)
variable (pel55_5 : β x y, killed x y β Β¬ richer x y)
variable (pel55_6 : β x, hates agatha x β Β¬ hates charles x)
variable (pel55_7 : β x, x β butler β hates agatha x)
variable (pel55_8 : β x, Β¬ richer x agatha β hates butler x)
variable (pel55_9 : β x, hates agatha x β hates butler x)
variable (pel55_10 : β x, β y, Β¬ hates x y)
-- variable (pel55_10a : β x, β y, lives y β§ Β¬ hates x y)
variable (pel55_11 : agatha β butler)
-- variable (pel55_12 : agatha β charles)
-- variable (pel55_13 : charles β butler)
include hates pel55_1 pel55_3 pel55_4 pel55_5 pel55_6 pel55_7 pel55_8 pel55_9 pel55_10 pel55_11 charles in
theorem result : killed agatha agatha := by
have haa : hates agatha agatha := pel55_7 : β (x : u), x β butler β hates agatha x
pel55_7 agatha pel55_11 : agatha β butler
pel55_11 u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha
killed agatha agatha
have nkca : Β¬killed charles agatha
nkca : Β¬ killed charles agatha := u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha
killed agatha agatha
by
by_contra kca : killed charles agatha
kca u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha kca : killed charles agatha
False
have hca : hates charles agatha
hca := pel55_4 : β (x y : u), killed x y β hates x y
pel55_4 charles agatha kca : killed charles agatha
kca u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha kca : killed charles agatha hca : hates charles agatha
False
have nhca : Β¬hates charles agatha
nhca := pel55_6 : β (x : u), hates agatha x β Β¬hates charles x
pel55_6 agatha haa u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha kca : killed charles agatha hca : hates charles agatha nhca : Β¬ hates charles agatha
False
contradiction
have β¨ n , ln , kna β© := pel55_1 : β x, lives x β§ killed x agatha
pel55_1 u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha
killed agatha agatha
obtain la la | lb | lc : n = butler β¨ n = charles
| lb la | lb | lc : n = butler β¨ n = charles
| lc := pel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charles
pel55_3 n ln u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha la : n = agatha
inl killed agatha agatha
. u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha la : n = agatha
inl killed agatha agatha
rw [ u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha la : n = agatha
inl killed agatha agatha
la u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed agatha agatha la : n = agatha
inl killed agatha agatha
] u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed agatha agatha la : n = agatha
inl killed agatha agatha
at kna u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed agatha agatha la : n = agatha
inl killed agatha agatha
exact kna : killed agatha agatha
kna
. u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha lb : n = butler
inr.inl killed agatha agatha
rw [ u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha lb : n = butler
inr.inl killed agatha agatha
lb u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler
inr.inl killed agatha agatha
] u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler
inr.inl killed agatha agatha
at kna u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler
inr.inl killed agatha agatha
have nrba : Β¬richer butler agatha
nrba : Β¬ richer butler agatha := pel55_5 : β (x y : u), killed x y β Β¬richer x y
pel55_5 butler agatha kna : killed butler agatha
kna u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agatha
inr.inl killed agatha agatha
have hbb : hates butler butler := pel55_8 : β (x : u), Β¬richer x agatha β hates butler x
pel55_8 butler nrba : Β¬richer butler agatha
nrba u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler
inr.inl killed agatha agatha
simp [ Classical.skolem : β {Ξ± : Sort ?u.1350} {b : Ξ± β Sort ?u.1349} {p : (x : Ξ±) β b x β Prop},
(β (x : Ξ±), β y, p x y) β β f, β (x : Ξ±), p x (f x)
Classical.skolem] at pel55_10 : β (x : u), β y, Β¬hates x y
pel55_10 u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)
inr.inl killed agatha agatha
have β¨ sk , nhsk : β (x : u), Β¬hates x (sk x)
nhsk β© := pel55_10 : β f, β (x : u), Β¬hates x (f x)
pel55_10 u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)
inr.inl killed agatha agatha
have nhbsk : Β¬hates butler (sk butler)
nhbsk : Β¬ hates butler ( sk butler ) := nhsk : β (x : u), Β¬hates x (sk x)
nhsk butler u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)
inr.inl killed agatha agatha
have nhask : Β¬hates agatha (sk butler)
nhask : Β¬ hates agatha ( sk butler ) := u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)
inr.inl killed agatha agatha
by
by_contra hask : hates agatha (sk butler)
hask u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)hask : hates agatha (sk butler)
False
have hbsk : hates butler (sk butler)
hbsk := pel55_9 : β (x : u), hates agatha x β hates butler x
pel55_9 ( sk butler ) hask : hates agatha (sk butler)
hask u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)hask : hates agatha (sk butler) hbsk : hates butler (sk butler)
False
contradiction
have eqsk : sk butler = butler := u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)nhask : Β¬ hates agatha (sk butler)
inr.inl killed agatha agatha
by
by_contra nesk : Β¬sk butler = butler
nesk u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)nhask : Β¬ hates agatha (sk butler)nesk : Β¬ sk butler = butler
False
have hbsk : hates agatha (sk butler)
hbsk := pel55_7 : β (x : u), x β butler β hates agatha x
pel55_7 ( sk butler ) nesk : Β¬sk butler = butler
nesk u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)nhask : Β¬ hates agatha (sk butler)nesk : Β¬ sk butler = butlerhbsk : hates agatha (sk butler)
False
contradiction
have nhbb : Β¬hates butler butler
nhbb := eqsk βΈ nhbsk : Β¬hates butler (sk butler)
nhbsk u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed butler agatha lb : n = butler nrba : Β¬ richer butler agathahbb : hates butler butler pel55_10 : β f, β (x : u), Β¬ hates x (f x)sk : u β u nhsk : β (x : u), Β¬ hates x (sk x)nhbsk : Β¬ hates butler (sk butler)nhask : Β¬ hates agatha (sk butler)eqsk : sk butler = butler nhbb : Β¬ hates butler butler
inr.inl killed agatha agatha
contradiction
. u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha lc : n = charles
inr.inr killed agatha agatha
rw [ u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed n agatha lc : n = charles
inr.inr killed agatha agatha
lc u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed charles agatha lc : n = charles
inr.inr killed agatha agatha
] u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed charles agatha lc : n = charles
inr.inr killed agatha agatha
at kna u : Type lives : u β Prop killed, hates, richer : u β u β Prop agatha, butler, charles : u pel55_1 : β x, lives x β§ killed x agathapel55_3 : β (x : u), lives x β x = agatha β¨ x = butler β¨ x = charlespel55_4 : β (x y : u), killed x y β hates x ypel55_5 : β (x y : u), killed x y β Β¬ richer x ypel55_6 : β (x : u), hates agatha x β Β¬ hates charles xpel55_7 : β (x : u), x β butler β hates agatha xpel55_8 : β (x : u), Β¬ richer x agatha β hates butler xpel55_9 : β (x : u), hates agatha x β hates butler xpel55_10 : β (x : u), β y, Β¬ hates x ypel55_11 : agatha β butler haa : hates agatha agatha nkca : Β¬ killed charles agathan : u ln : lives n kna : killed charles agatha lc : n = charles
inr.inr killed agatha agatha
contradiction
done