Structure tcTheory


Source File Identifier index Theory binding index

signature tcTheory =
sig
  type thm = Thm.thm
  
  (*  Definitions  *)
    val BRESTR : thm
    val DRESTR : thm
    val FMAP_TO_RELN : thm
    val RELN_TO_FMAP : thm
    val RRESTR : thm
    val TC_ITER : thm
    val TC_MOD : thm
    val subTC : thm
  
  (*  Theorems  *)
    val DRESTR_EMPTY : thm
    val DRESTR_IN : thm
    val DRESTR_RDOM : thm
    val FDOM_RDOM : thm
    val FINITE_RDOM : thm
    val I_o_f : thm
    val NOT_IN_RDOM : thm
    val O_REMPTY_O : thm
    val RDOM_SUBSET_FDOM : thm
    val RDOM_subTC : thm
    val RELN_TO_FMAP_TO_RELN_ID : thm
    val REMPTY_RRESTR : thm
    val RTC_INSERT : thm
    val SUBSET_FDOM_LEM : thm
    val TC_ITER_THM : thm
    val TC_MOD_EMPTY_ID : thm
    val TC_MOD_LEM : thm
    val subTC_EMPTY : thm
    val subTC_FDOM : thm
    val subTC_FDOM_RDOM : thm
    val subTC_INSERT : thm
    val subTC_INSERT_COR : thm
    val subTC_MAX_RDOM : thm
    val subTC_RDOM : thm
    val subTC_SUPERSET_RDOM : thm
    val subTC_thm : thm
  
  val tc_grammars : type_grammar.grammar * term_grammar.grammar
(*
   [finite_map] Parent theory of "tc"
   
   [toto] Parent theory of "tc"
   
   [BRESTR]  Definition
      
      |- !R s. R ^|^ s = R ^| s |^ s
   
   [DRESTR]  Definition
      
      |- !R s a b. (R ^| s) a b <=> a IN s /\ R a b
   
   [FMAP_TO_RELN]  Definition
      
      |- !f x. FMAP_TO_RELN f x = if x IN FDOM f then f ' x else {}
   
   [RELN_TO_FMAP]  Definition
      
      |- !R. RELN_TO_FMAP R = FUN_FMAP R (RDOM R)
   
   [RRESTR]  Definition
      
      |- !R s a b. (R |^ s) a b <=> b IN s /\ R a b
   
   [TC_ITER]  Definition
      
      |- (!r. TC_ITER [] r = r) /\
         !x d r. TC_ITER (x::d) r = TC_ITER d (TC_MOD x (r ' x) o_f r)
   
   [TC_MOD]  Definition
      
      |- !x rx ra. TC_MOD x rx ra = if x IN ra then ra UNION rx else ra
   
   [subTC]  Definition
      
      |- !R s x y.
             subTC R s x y <=>
             R x y \/
             ?a b. (R ^|^ s)^* a b /\ a IN s /\ b IN s /\ R x a /\ R b y
   
   [DRESTR_EMPTY]  Theorem
      
      |- !R. R ^| {} = REMPTY
   
   [DRESTR_IN]  Theorem
      
      |- !R s a. (R ^| s) a = if a IN s then R a else {}
   
   [DRESTR_RDOM]  Theorem
      
      |- !R. R ^| RDOM R = R
   
   [FDOM_RDOM]  Theorem
      
      |- !R. FINITE (RDOM R) ==> (FDOM (RELN_TO_FMAP R) = RDOM R)
   
   [FINITE_RDOM]  Theorem
      
      |- !f. FINITE (RDOM (FMAP_TO_RELN f))
   
   [I_o_f]  Theorem
      
      |- !f. I o_f f = f
   
   [NOT_IN_RDOM]  Theorem
      
      |- !Q x. (Q x = {}) <=> x NOTIN RDOM Q
   
   [O_REMPTY_O]  Theorem
      
      |- (!R. R O REMPTY = REMPTY) /\ !R. REMPTY O R = REMPTY
   
   [RDOM_SUBSET_FDOM]  Theorem
      
      |- !f. RDOM (FMAP_TO_RELN f) SUBSET FDOM f
   
   [RDOM_subTC]  Theorem
      
      |- !R s. RDOM (subTC R s) = RDOM R
   
   [RELN_TO_FMAP_TO_RELN_ID]  Theorem
      
      |- !R. FINITE (RDOM R) ==> (FMAP_TO_RELN (RELN_TO_FMAP R) = R)
   
   [REMPTY_RRESTR]  Theorem
      
      |- !s. REMPTY |^ s = REMPTY
   
   [RTC_INSERT]  Theorem
      
      |- !R s a w z.
             (R ^|^ (a INSERT s))^* w z <=>
             (R ^|^ s)^* w z \/
             ((a = w) \/ ?x. x IN s /\ (R ^|^ s)^* w x /\ R x a) /\
             ((a = z) \/ ?y. y IN s /\ R a y /\ (R ^|^ s)^* y z)
   
   [SUBSET_FDOM_LEM]  Theorem
      
      |- !R s f. (subTC R s = FMAP_TO_RELN f) ==> RDOM R SUBSET FDOM f
   
   [TC_ITER_THM]  Theorem
      
      |- !R d f s.
             (s UNION set d = FDOM f) /\ (subTC R s = FMAP_TO_RELN f) ==>
             (R^+ = FMAP_TO_RELN (TC_ITER d f))
   
   [TC_MOD_EMPTY_ID]  Theorem
      
      |- !x ra. TC_MOD x {} = I
   
   [TC_MOD_LEM]  Theorem
      
      |- !R s x f.
             x IN FDOM f /\ (subTC R s = FMAP_TO_RELN f) ==>
             (subTC R (x INSERT s) = FMAP_TO_RELN (TC_MOD x (f ' x) o_f f))
   
   [subTC_EMPTY]  Theorem
      
      |- !R. subTC R {} = R
   
   [subTC_FDOM]  Theorem
      
      |- !g R.
             (subTC R (RDOM R) = FMAP_TO_RELN g) ==>
             (subTC R (FDOM g) = subTC R (RDOM R))
   
   [subTC_FDOM_RDOM]  Theorem
      
      |- !R f.
             (subTC R (FDOM f) = FMAP_TO_RELN f) ==>
             (subTC R (RDOM R) = FMAP_TO_RELN f)
   
   [subTC_INSERT]  Theorem
      
      |- !R s q x y.
             subTC R (q INSERT s) x y <=>
             subTC R s x y \/ subTC R s x q /\ subTC R s q y
   
   [subTC_INSERT_COR]  Theorem
      
      |- !R s x a.
             subTC R (x INSERT s) a =
             if x IN subTC R s a then subTC R s a UNION subTC R s x
             else subTC R s a
   
   [subTC_MAX_RDOM]  Theorem
      
      |- !R s x. x NOTIN RDOM R ==> (subTC R (x INSERT s) = subTC R s)
   
   [subTC_RDOM]  Theorem
      
      |- !R. subTC R (RDOM R) = R^+
   
   [subTC_SUPERSET_RDOM]  Theorem
      
      |- !R s. FINITE s ==> (subTC R (RDOM R UNION s) = subTC R (RDOM R))
   
   [subTC_thm]  Theorem
      
      |- !R s. subTC R s = R RUNION R O ((R ^|^ s)^* ^| s) O R
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Kananaskis-13