Up to index of Isabelle/HOL/sHowe
theory OpenSim = Sim(*
File: OpenSim.thy
Author: Simon Ambler & AM
Copyright: Leicester University, 1998--2002
Time-stamp: <2002-04-11 17:38:10 am133>
Extension of simulation to open terms.
*)
OpenSim = Sim +
consts
opensim :: "( var list * uexp * uexp ) set"
syntax
"@opensim" :: "[var list, uexp, uexp] => bool"
("((_) |- /(_) /<opensim> (_) )" [50,50] 50)
translations
"env |- s <opensim> t " == "(env,s,t) : opensim"
constdefs
extends :: "['a list, 'a list] => bool"
"extends l k == (! x. x mem k --> x mem l)"
(*
rules
osim_weak "env |- s <opensim> t ==> !n. (n # env) |- s <opensim> t"*)
inductive opensim
intrs
opensim_Nil "[| cloexp s; cloexp t ; s <sim> t|] ==> [] |- s <opensim> t "
(*
opensim_Cons
"[|! p. cloexp p --> (env |- (E p) <opensim> (F p)) ; abstr E; abstr F; newFor n (E p); newFor n (F p)|] \
\ ==> n # env |- (E (VAR n)) <opensim> (F(VAR n))"
*)
opensim_Cons
"[|isexp s;isexp t;! p. cloexp p --> env |- subst s n p <opensim> subst t n p|] \
\ ==> n # env |- s <opensim> t"
end
theorem opensim_wff1:
env |- s <opensim> t ==> env |- s
theorem opensim_wff2:
env |- s <opensim> t ==> env |- t
theorem opensim_wff:
env |- s <opensim> t ==> env |- s & env |- t
theorem opensim_iwff:
env |- s <opensim> t ==> env |-- s & env |-- t
theorem opensim_sim:
[] |- s <opensim> t ==> s <sim> t
theorem sim_opensim:
s <sim> t ==> env |- s <opensim> t
theorem opensim_refl:
env |- s ==> env |- s <opensim> s
theorem opensim_refl_i:
env |-- s ==> env |- s <opensim> s
theorem opensim_trans:
[| env |- s <opensim> t ; env |- t <opensim> u |] ==> env |- s <opensim> u