Theory Proc_name

Up to index of Isabelle/HOL/HOL-Complex/CSP-Prover

theory Proc_name = CSP_semantics:

           (*-------------------------------------------*
            |                CSP-Prover                 |
            |               December 2004               |
            |        Yoshinao Isobe (AIST JAPAN)        |
            *-------------------------------------------*)

theory Proc_name = CSP_semantics:

(*  The following simplification rules are deleted in this theory file *)
(*  because they unexpectly rewrite UnionT and InterT.                 *)
(*                  disj_not1: (~ P | Q) = (P --> Q)                   *)

declare disj_not1 [simp del]

(*  The following simplification is sometimes unexpected.              *)
(*                                                                     *)
(*             not_None_eq: (x ~= None) = (EX y. x = Some y)           *)

declare not_None_eq [simp del]

(*********************************************************
                        DomSF
 *********************************************************)

(*** Proc_name_memSF ***)

lemma Proc_name_evalSF: "[[<C>]]SF ev = (ev C)"
apply (simp add: evalSF_def)
apply (simp add: pairSF_def)
apply (simp add: evalT_def evalF_def)
apply (simp add: fstSF_def sndSF_def)
apply (simp add: Rep_domSF_inverse)
done

(*********************************************************
                      mono
 *********************************************************)

(*** T ***)

lemma Proc_name_evalT_mono:
  "ev1 <= ev2 ==> [[<C>]]T ev1 <= [[<C>]]T ev2"
apply (simp add: subsetSF_prod_decompo)
apply (simp add: evalT_def)
apply (simp add: order_prod_def)
done

(*** F ***)

lemma Proc_name_evalF_mono:
  "ev1 <= ev2 ==> [[<C>]]F ev1 <= [[<C>]]F ev2"
apply (simp add: subsetSF_prod_decompo)
apply (simp add: evalF_def)
apply (simp add: order_prod_def)
done

(****************** to add them again ******************)

declare disj_not1   [simp]
declare not_None_eq [simp]

end

lemma Proc_name_evalSF:

  [[<C>]]SF ev = ev C

lemma Proc_name_evalT_mono:

  ev1ev2 ==> [[<C>]]T ev1 ≤ [[<C>]]T ev2

lemma Proc_name_evalF_mono:

  ev1ev2 ==> [[<C>]]F ev1 ≤ [[<C>]]F ev2