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-10