Zulip Chat Archive
Stream: new members
Topic: Proof breaks when previous placeholder is filled
Michał Mrugała (Mar 12 2025 at 14:17):
Hi, I am working on proving the following result:
def pushoutCoconeEquivBinaryCofan : PushoutCocone f g ≌ BinaryCofan (Under.mk f) (Under.mk g) where
functor := {
obj c := BinaryCofan.mk (Under.homMk (U := Under.mk f) c.inl rfl)
(Under.homMk (U := Under.mk g) (V := Under.mk (f ≫ c.inl)) c.inr c.condition.symm)
map {c1 c2} a := {
hom := Under.homMk a.hom
w := by
rintro ⟨(_|_)⟩
repeat
ext
exact a.w _
}
}
inverse := {
obj c := PushoutCocone.mk c.inl.right c.inr.right (c.inl.w.symm.trans c.inr.w)
map {c1 c2} a := {
hom := a.hom.right
w := by rintro (_|_|_) <;> simp [← Under.comp_right]
}
}
unitIso := {
hom := {
app c := c.eta.hom
naturality {c1 c2} a := _ -- by ext; simp -- removable
}
inv := {
app c := c.eta.inv
naturality {c1 c2} a := by ext; simp
}
hom_inv_id := _
inv_hom_id := _
}
counitIso := _
functor_unitIso_comp := _
As shown the proof of naturality of inv
seems to work. However, if I fill in the proof of naturality of hom
or remove that field (since aesop does it) the simp call times out. How can I approach troubleshooting this?
Aaron Liu (Mar 12 2025 at 14:32):
This may be an instance of #lean4 > dsimp simplifies proofs, which is slow .
Aaron Liu (Mar 12 2025 at 14:34):
This may be an instance of #lean4 > dsimp simplifies proofs, which is slow .
Aaron Liu (Mar 12 2025 at 14:34):
For troubleshooting options, you can try set_option trace.Meta.Tactic.simp true
Michał Mrugała (Mar 12 2025 at 14:34):
On a quick skim it seems likely. dsimp
also times out under the same circumstances.
Last updated: May 02 2025 at 03:31 UTC