Изабель: остановить simp от разделения кортежа

Как я могу остановить метод simp от разделения кортежа на его компоненты?

Пример. Если я напишу

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

состояние доказательства - ∃z. foo z. Если я тогда напишу

apply (simp)

состояние доказательства становится ∃a aa ab ac b. blah (a, aa, ab, ac, b). Мне нравится, что simp расширил foo на blah, но я бы предпочел оставить мою переменную z как есть.


person John Wickerson    schedule 10.12.2013    source источник


Ответы (1)


Вы должны удалить теорему split_paired_Ex из упрощающего, как в apply (simp del: split_paired_Ex). Существует также теорема split_paired_All для квантификатора HOL ALL и split_paired_all для метаквантификатора !!.

person Andreas Lochbihler    schedule 10.12.2013