--- a/src/HOL/Lambda/Eta.ML Wed Jul 15 11:15:57 1998 +0200
+++ b/src/HOL/Lambda/Eta.ML Wed Jul 15 12:02:19 1998 +0200
@@ -14,10 +14,10 @@
Addsimps eta.intrs;
val eta_cases = map (eta.mk_cases dB.simps)
- ["Abs s -e> z","s @ t -e> u","Var i -e> t"];
+ ["Abs s -e> z","s $ t -e> u","Var i -e> t"];
val beta_cases = map (beta.mk_cases dB.simps)
- ["s @ t -> u","Var i -> t"];
+ ["s $ t -> u","Var i -> t"];
AddIs eta.intrs;
AddSEs (beta_cases@eta_cases);
@@ -94,17 +94,17 @@
by (ALLGOALS(blast_tac (claset() addIs [rtrancl_refl,rtrancl_into_rtrancl])));
qed "rtrancl_eta_Abs";
-Goal "s -e>> s' ==> s @ t -e>> s' @ t";
+Goal "s -e>> s' ==> s $ t -e>> s' $ t";
by (etac rtrancl_induct 1);
by (ALLGOALS(blast_tac (claset() addIs [rtrancl_refl,rtrancl_into_rtrancl])));
qed "rtrancl_eta_AppL";
-Goal "t -e>> t' ==> s @ t -e>> s @ t'";
+Goal "t -e>> t' ==> s $ t -e>> s $ t'";
by (etac rtrancl_induct 1);
by (ALLGOALS(blast_tac (claset() addIs [rtrancl_refl,rtrancl_into_rtrancl])));
qed "rtrancl_eta_AppR";
-Goal "[| s -e>> s'; t -e>> t' |] ==> s @ t -e>> s' @ t'";
+Goal "[| s -e>> s'; t -e>> t' |] ==> s $ t -e>> s' $ t'";
by (blast_tac (claset() addSIs [rtrancl_eta_AppL, rtrancl_eta_AppR]
addIs [rtrancl_trans]) 1);
qed "rtrancl_eta_App";
@@ -163,7 +163,7 @@
beta_confluent,eta_confluent,square_beta_eta] 1));
qed "confluent_beta_eta";
-section "Implicit definition of -e>: Abs(lift s 0 @ Var 0) -e> s";
+section "Implicit definition of -e>: Abs(lift s 0 $ Var 0) -e> s";
Goal "!i. (~free s i) = (? t. s = lift t i)";
by (dB.induct_tac "s" 1);
@@ -189,7 +189,7 @@
by (rtac iffI 1);
by (REPEAT(eresolve_tac [conjE,exE] 1));
by (rename_tac "u1 u2" 1);
- by (res_inst_tac [("x","u1@u2")] exI 1);
+ by (res_inst_tac [("x","u1$u2")] exI 1);
by (Asm_simp_tac 1);
by (etac exE 1);
by (etac rev_mp 1);
@@ -214,7 +214,7 @@
by (Blast_tac 1);
qed_spec_mp "not_free_iff_lifted";
-Goal "(!s u. (~free s 0) --> R(Abs(s @ Var 0))(s[u/0])) = \
-\ (!s. R(Abs(lift s 0 @ Var 0))(s))";
+Goal "(!s u. (~free s 0) --> R(Abs(s $ Var 0))(s[u/0])) = \
+\ (!s. R(Abs(lift s 0 $ Var 0))(s))";
by (fast_tac (HOL_cs addss (simpset() addsimps [not_free_iff_lifted])) 1);
qed "explicit_is_implicit";
--- a/src/HOL/Lambda/Eta.thy Wed Jul 15 11:15:57 1998 +0200
+++ b/src/HOL/Lambda/Eta.thy Wed Jul 15 12:02:19 1998 +0200
@@ -21,14 +21,14 @@
primrec free Lambda.dB
"free (Var j) i = (j=i)"
- "free (s @ t) i = (free s i | free t i)"
+ "free (s $ t) i = (free s i | free t i)"
"free (Abs s) i = free s (Suc i)"
inductive eta
intrs
- eta "~free s 0 ==> Abs(s @ Var 0) -e> s[dummy/0]"
- appL "s -e> t ==> s@u -e> t@u"
- appR "s -e> t ==> u@s -e> u@t"
+ eta "~free s 0 ==> Abs(s $ Var 0) -e> s[dummy/0]"
+ appL "s -e> t ==> s$u -e> t$u"
+ appR "s -e> t ==> u$s -e> u$t"
abs "s -e> t ==> Abs s -e> Abs t"
end
--- a/src/HOL/Lambda/Lambda.ML Wed Jul 15 11:15:57 1998 +0200
+++ b/src/HOL/Lambda/Lambda.ML Wed Jul 15 12:02:19 1998 +0200
@@ -27,17 +27,17 @@
qed "rtrancl_beta_Abs";
AddSIs [rtrancl_beta_Abs];
-Goal "s ->> s' ==> s @ t ->> s' @ t";
+Goal "s ->> s' ==> s $ t ->> s' $ t";
by (etac rtrancl_induct 1);
by (ALLGOALS (blast_tac (claset() addIs [rtrancl_into_rtrancl])));
qed "rtrancl_beta_AppL";
-Goal "t ->> t' ==> s @ t ->> s @ t'";
+Goal "t ->> t' ==> s $ t ->> s $ t'";
by (etac rtrancl_induct 1);
by (ALLGOALS (blast_tac (claset() addIs [rtrancl_into_rtrancl])));
qed "rtrancl_beta_AppR";
-Goal "[| s ->> s'; t ->> t' |] ==> s @ t ->> s' @ t'";
+Goal "[| s ->> s'; t ->> t' |] ==> s $ t ->> s' $ t'";
by (blast_tac (claset() addSIs [rtrancl_beta_AppL, rtrancl_beta_AppR]
addIs [rtrancl_trans]) 1);
qed "rtrancl_beta_App";
--- a/src/HOL/Lambda/Lambda.thy Wed Jul 15 11:15:57 1998 +0200
+++ b/src/HOL/Lambda/Lambda.thy Wed Jul 15 12:02:19 1998 +0200
@@ -9,7 +9,7 @@
Lambda = Arith + Inductive +
-datatype dB = Var nat | "@" dB dB (infixl 200) | Abs dB
+datatype dB = Var nat | "$" dB dB (infixl 200) | Abs dB
consts
subst :: [dB,dB,nat]=>dB ("_[_'/_]" [300,0,0] 300)
@@ -20,24 +20,24 @@
primrec lift dB
"lift (Var i) k = (if i < k then Var i else Var(Suc i))"
- "lift (s @ t) k = (lift s k) @ (lift t k)"
+ "lift (s $ t) k = (lift s k) $ (lift t k)"
"lift (Abs s) k = Abs(lift s (Suc k))"
primrec subst dB
subst_Var "(Var i)[s/k] = (if k < i then Var(i-1)
else if i = k then s else Var i)"
- subst_App "(t @ u)[s/k] = t[s/k] @ u[s/k]"
+ subst_App "(t $ u)[s/k] = t[s/k] $ u[s/k]"
subst_Abs "(Abs t)[s/k] = Abs (t[lift s 0 / Suc k])"
primrec liftn dB
"liftn n (Var i) k = (if i < k then Var i else Var(i+n))"
- "liftn n (s @ t) k = (liftn n s k) @ (liftn n t k)"
+ "liftn n (s $ t) k = (liftn n s k) $ (liftn n t k)"
"liftn n (Abs s) k = Abs(liftn n s (Suc k))"
primrec substn dB
"substn (Var i) s k = (if k < i then Var(i-1)
else if i = k then liftn k s 0 else Var i)"
- "substn (t @ u) s k = (substn t s k) @ (substn u s k)"
+ "substn (t $ u) s k = (substn t s k) $ (substn u s k)"
"substn (Abs t) s k = Abs (substn t s (Suc k))"
consts beta :: "(dB * dB) set"
@@ -50,8 +50,8 @@
inductive beta
intrs
- beta "(Abs s) @ t -> s[t/0]"
- appL "s -> t ==> s@u -> t@u"
- appR "s -> t ==> u@s -> u@t"
+ beta "(Abs s) $ t -> s[t/0]"
+ appL "s -> t ==> s$u -> t$u"
+ appR "s -> t ==> u$s -> u$t"
abs "s -> t ==> Abs s -> Abs t"
end
--- a/src/HOL/Lambda/ParRed.ML Wed Jul 15 11:15:57 1998 +0200
+++ b/src/HOL/Lambda/ParRed.ML Wed Jul 15 12:02:19 1998 +0200
@@ -13,7 +13,7 @@
val par_beta_cases = map (par_beta.mk_cases dB.simps)
["Var n => t", "Abs s => Abs t",
- "(Abs s) @ t => u", "s @ t => u", "Abs s => t"];
+ "(Abs s) $ t => u", "s $ t => u", "Abs s => t"];
AddSIs par_beta.intrs;
AddSEs par_beta_cases;
--- a/src/HOL/Lambda/ParRed.thy Wed Jul 15 11:15:57 1998 +0200
+++ b/src/HOL/Lambda/ParRed.thy Wed Jul 15 12:02:19 1998 +0200
@@ -19,26 +19,16 @@
intrs
var "Var n => Var n"
abs "s => t ==> Abs s => Abs t"
- app "[| s => s'; t => t' |] ==> s @ t => s' @ t'"
- beta "[| s => s'; t => t' |] ==> (Abs s) @ t => s'[t'/0]"
+ app "[| s => s'; t => t' |] ==> s $ t => s' $ t'"
+ beta "[| s => s'; t => t' |] ==> (Abs s) $ t => s'[t'/0]"
consts
cd :: dB => dB
recdef cd "measure size"
"cd(Var n) = Var n"
- "cd(Var n @ t) = Var n @ cd t"
- "cd((s1 @ s2) @ t) = cd(s1 @ s2) @ cd t"
- "cd(Abs u @ t) = (cd u)[cd t/0]"
-(*
- "cd(s @ t) = (case s of Var n => (s @ cd t)
- | s1 @ s2 => (cd s @ cd t)
- | Abs u => deAbs(cd s)[cd t/0])"
-*)
+ "cd(Var n $ t) = Var n $ cd t"
+ "cd((s1 $ s2) $ t) = cd(s1 $ s2) $ cd t"
+ "cd(Abs u $ t) = (cd u)[cd t/0]"
"cd(Abs s) = Abs(cd s)"
-(*
-primrec deAbs dB
- "deAbs(Var n) = Var n"
- "deAbs(s @ t) = s @ t"
- "deAbs(Abs s) = s"*)
end