Nominal/activities/nominal-ijcar08/Minimal.thy
author Christian Urban <urbanc@in.tum.de>
Thu, 13 Sep 2018 13:09:24 +0100
changeset 539 5eaec0f9980f
parent 418 18a6039148df
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
418
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     1
theory Minimal
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     2
imports "Nominal"
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     3
begin
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     4
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     5
atom_decl name
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     6
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     7
nominal_datatype lam =
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     8
  Var "name"
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     9
| App "lam" "lam" 
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    10
| Lam "\<guillemotleft>name\<guillemotright>lam" ("Lam [_]._")
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    11
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    12
lemma alpha_test:
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    13
  shows "Lam [x].Var x = Lam [y].Var y"
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    14
  by (simp add: lam.inject alpha swap_simps fresh_atm)
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    15
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    16
thm lam.inject[no_vars]
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    17
thm alpha[no_vars]
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    18
thm swap_simps[no_vars]
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    19
thm fresh_atm[no_vars]
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    20
18a6039148df updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    21
end