Zulip Chat Archive
Stream: general
Topic: rw can't match this
Kenny Lau (Mar 15 2018 at 20:10):
@has_mem.mem.{u u} α α (@zfc.has_zmem.to_has_mem.{u} α (@zfc.has_comprehension.to_has_zmem.{u} α has_comprehension)) ?m_1 (@zfc.comprehension.{u} α has_comprehension ?m_2 ?m_3)
@has_mem.mem.{u u} α α (@zfc.has_zmem.to_has_mem.{u} α (@zfc.has_zmem.mk.{u} α to_has_mem)) x (@zfc.comprehension.{u} α has_comprehension infinity (λ (x : α), false))
Kenny Lau (Mar 15 2018 at 20:11):
hmm, the situation is quite complicated
Simon Hudon (Mar 15 2018 at 20:12):
Question?
Kenny Lau (Mar 15 2018 at 20:13):
I've filled in more holes
Kenny Lau (Mar 15 2018 at 20:13):
now rw
can't match this:
@has_mem.mem.{u u} α α (@zfc.has_zmem.to_has_mem.{u} α (@zfc.has_comprehension.to_has_zmem.{u} α has_comprehension)) x (@zfc.comprehension.{u} α has_comprehension infinity (λ (x : α), false))
Kenny Lau (Mar 15 2018 at 20:13):
where the goal contains:
@has_mem.mem.{u u} α α (@zfc.has_zmem.to_has_mem.{u} α (@zfc.has_zmem.mk.{u} α to_has_mem)) x (@zfc.comprehension.{u} α has_comprehension infinity (λ (x : α), false))
Kenny Lau (Mar 15 2018 at 20:14):
If I'm analyzing correctly, it would be a failure to match this with this:
@zfc.has_comprehension.to_has_zmem.{u} α has_comprehension
@zfc.has_zmem.mk.{u} α to_has_mem
Kenny Lau (Mar 15 2018 at 20:14):
@Simon Hudon question: do you see any way to fix it?
Simon Hudon (Mar 15 2018 at 20:15):
What are you trying to do?
Kenny Lau (Mar 15 2018 at 20:16):
rewrite hx : x ∈ comprehension infinity (λ (x : α), false)
Simon Hudon (Mar 15 2018 at 20:17):
What is the rule that you're using?
Kenny Lau (Mar 15 2018 at 20:18):
∀ A p x, x ∈ comprehension A p ↔ x ∈ A ∧ p x
Simon Hudon (Mar 15 2018 at 20:20):
Why do you have (@zfc.has_zmem.mk.{u} α to_has_mem)
?
Simon Hudon (Mar 15 2018 at 20:21):
And where does to_has_mem
come from?
Kenny Lau (Mar 15 2018 at 20:21):
I'm in the middle of a structure doing things like this
Kenny Lau (Mar 15 2018 at 20:21):
(has_zempty : has_zempty α := { emptyc := @@comprehension has_comprehension infinity (λ x, false), empty_not_zmem := λ x hx, begin simp [∅] at hx, rw [@@zmem_comprehension_iff has_comprehension infinity (λ (x : α), false) x] at hx, end })
Kenny Lau (Mar 15 2018 at 20:22):
class has_zmem extends has_mem α α class has_zempty extends has_zmem α, has_emptyc α := (empty_not_zmem : ∀ x, x ∉ (∅:α))
Simon Hudon (Mar 15 2018 at 20:22):
Try extracting
{ emptyc := @@comprehension has_comprehension infinity (λ x, false), empty_not_zmem := λ x hx, begin simp [∅] at hx, rw [@@zmem_comprehension_iff has_comprehension infinity (λ (x : α), false) x] at hx, end })
into a separate definition
Kenny Lau (Mar 15 2018 at 20:29):
thanks
Last updated: Dec 20 2023 at 11:08 UTC