Theory Agent
theory Agent
imports "HOL-Nominal.Nominal"
begin
lemma pt_id:
fixes x :: 'a
and a :: 'x
assumes pt: "pt TYPE('a) TYPE('x)"
and at: "at TYPE('x)"
shows "[(a, a)] ∙ x = x"
proof -
have "x = ([]::'x prm) ∙ x"
by(simp add: pt1[OF pt])
also have "[(a, a)] ∙ x = ([]::'x prm) ∙ x"
by(simp add: pt3[OF pt] at_ds1[OF at])
finally show ?thesis by simp
qed
lemma pt_swap:
fixes x :: 'a
and a :: 'x
and b :: 'x
assumes pt: "pt TYPE('a) TYPE('x)"
and at: "at TYPE('x)"
shows "[(a, b)] ∙ x = [(b, a)] ∙ x"
proof -
show ?thesis by(simp add: pt3[OF pt] at_ds5[OF at])
qed