Skip to content

Commit

Permalink
WIP: feat: prove that EquivUTT is transitive
Browse files Browse the repository at this point in the history
  • Loading branch information
alexkeizer committed Oct 15, 2024
1 parent 90a28c5 commit 4f96f19
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions ITree/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,30 @@ theorem symm {x y : ITree α ε ρ} : EquivUTT x y → EquivUTT y x := by
<;> assumption
· exact h_R

theorem trans {x y z : ITree α ε ρ} : EquivUTT x y → EquivUTT y z → EquivUTT x z := by
rintro ⟨R₁, isFixpoint₁, h_R₁⟩ ⟨R₂, isFixpoint₂, h_R₂⟩
let R' (a c) := ∃ b, R₁ a b ∧ R₂ b c
apply EquivUTT.intro (R := R')
· rintro a c ⟨b, h_fR₁, h_fR₂⟩
specialize isFixpoint₁ _ _ h_fR₁
specialize isFixpoint₂ _ _ h_fR₂
clear h_fR₁ h_fR₂
-- have r'_of_left (a c) : R' a c

cases isFixpoint₁
case ret r =>
generalize ret r = retr
-- split at isFixpoint₂
-- cases isFixpoint₂
· sorry
· sorry
· sorry
· sorry
· sorry
· exact ⟨y, h_R₁, h_R₂⟩



end EquivUTT

end ITree

0 comments on commit 4f96f19

Please sign in to comment.