I encounter something massive like this
x ∈ (λ(v, f, w). w) `
({w |w. nth_world M r s cwl n w} ×
s ×
⋃ (set `
uncurry cwl `
(s ×
{w |w. nth_world M r s cwl n w})))
My aim is to convert this to a predicate on x. What would mature users' attack on this?
My way to do it in HOL4 would be simplifying with the definition of Image, uncurrying and products. I naively tried some unfolding, and got this:
x ∈ (λ(v, f, w). w) `
({w |w. nth_world M r s cwl n w} ×
s ×
⋃ (set `
(λpair.
cwl (fst pair) (snd pair)) `
(s ×
{w |w. nth_world M r s cwl n w})))
Note the \lambda pair. ...
. Is there something to do to tell Isabelle to split the pair?
apply (auto simp: image_iff)
Thanks! It works perfectly, and my proof now look like this:
...
then show "x ∈ (λ(v, f, w). w) `
({w |w. nth_world M r s cwl n w} ×
s ×
⋃ (set `
uncurry cwl `
(s ×
{w |w.
nth_world M r s cwl n w})))"
unfolding
mem_Sigma_iff mem_Collect_eq uncurry_def
Bex_def bex_triv UN_iff image_iff
apply (auto simp: image_iff )
using xw by blast
I am a bit overwhelmed how to turn it into Isar. I will try a bit...
my intuition says that show ... using xw by (fastforce simp: image_iff)
should work (or maybe force), making it possible to write all that in one line
So what do you know about "fastforce" and "force" that helps you to make this conjecture?
fastforce and force try harder than auto
so usually auto + blast can be combined in one step of fastforce or force
sledgehammer(add: mem_Sigma_iff mem_Collect_eq uncurry_def
Bex_def bex_triv UN_iff image_iff xw) fails.
Yeah but rewriting using the simplifier is not exactly sledgehammer strength.
Mathias Fleury said:
so usually auto + blast can be combined in one step of fastforce or force
Thanks! That is good to know.
FYI this time both of them does not work this time.
Sad :frown:
but happens
Mathias Fleury said:
Yeah but rewriting using the simplifier is not exactly sledgehammer strength.
I am in the era that sledgehammer is already there, so I hardly know anything about apply style yet. That is why I do not even know what to try.
I will try to chop the goal into smaller pieces...
Last updated: Dec 21 2024 at 16:20 UTC