(* Title: Nominal2_Eqvt
Author : Brian Huffman ,
Author : Christian Urban
Test cases for perm_simp
*)
theory Eqvt
imports Nominal2_Base
begin
declare [[trace_eqvt = false]]
(* declare [[trace_eqvt = true]] *)
lemma
fixes B::"'a::pt"
shows "p ∙ (B = C)"
apply (perm_simp)
oops
lemma
fixes B::"bool"
shows "p ∙ (B = C)"
apply (perm_simp)
oops
lemma
fixes B::"bool"
shows "p ∙ (A ⟶ B = C)"
apply (perm_simp)
oops
lemma
shows "p ∙ (λ(x::'a::pt). A ⟶ (B::'a ==> bool) x = C) = foo"
apply (perm_simp)
oops
lemma
shows "p ∙ (λB::bool. A ⟶ (B = C)) = foo"
apply (perm_simp)
oops
lemma
shows "p ∙ (λx y. ∃ z. x = z ∧ x = y ⟶ z ≠ x) = foo"
apply (perm_simp)
oops
lemma
shows "p ∙ (λf x. f (g (f x))) = foo"
apply (perm_simp)
oops
lemma
fixes p q::"perm"
and x::"'a::pt"
shows "p ∙ (q ∙ x) = foo"
apply (perm_simp)
oops
lemma
fixes p q r::"perm"
and x::"'a::pt"
shows "p ∙ (q ∙ r ∙ x) = foo"
apply (perm_simp)
oops
lemma
fixes p r::"perm"
shows "p ∙ (λq::perm. q ∙ (r ∙ x)) = foo"
apply (perm_simp)
oops
lemma
fixes C D::"bool"
shows "B (p ∙ (C = D))"
apply (perm_simp)
oops
declare [[trace_eqvt = false]]
text ‹ there is no raw eqvt-rule for The›
lemma "p ∙ (THE x. P x) = foo"
apply (perm_strict_simp exclude: The)
apply (perm_simp exclude: The)
oops
lemma
fixes P :: "(('b ==> bool) ==> ('b::pt)) ==> ('a::pt)"
shows "p ∙ (P The) = foo"
apply (perm_simp exclude: The)
oops
lemma
fixes P :: "('a::pt) ==> ('b::pt) ==> bool"
shows "p ∙ (λ(a, b). P a b) = (λ(a, b). (p ∙ P) a b)"
apply (perm_simp)
oops
thm eqvts
thm eqvts_raw
ML ‹ Nominal_ThmDecls.is_eqvt @{context} @{term "supp"}›
end
Messung V0.5 in Prozent C=97 H=77 G=87
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland