Question

How can I stop the simp method from splitting a tuple into its components?

Example. If I write

fun foo where "foo z = blah z" 
lemma "∃z :: nat × nat × nat × nat × nat. foo z"

the proof state is ∃z. foo z. If I then write

apply (simp)

the proof state becomes ∃a aa ab ac b. blah (a, aa, ab, ac, b). I like that simp has expanded foo into blah, but I would rather it kept my variable z as it is.

Was it helpful?

Solution

You have to remove the theorem split_paired_Ex from the simplifier as in apply (simp del: split_paired_Ex). There is also the theorem split_paired_All for the HOL quantifier ALL and split_paired_all for the meta-quantifier !!.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top