- TC_DEF
-
|- !R a b.
TC R a b =
!P.
(!x y. R x y ==> P x y) /\ (!x y z. P x y /\ P y z ==> P x z) ==> P a b
- RTC_DEF
-
|- !R a b.
RTC R a b =
!P. (!x. P x x) /\ (!x y z. R x y /\ P y z ==> P x z) ==> P a b
- RC_def
-
|- !R x y. RC R x y = (x = y) \/ R x y
- transitive_def
-
|- !R. transitive R = !x y z. R x y /\ R y z ==> R x z
- reflexive_def
-
|- !R. reflexive R = !x. R x x
- WF_DEF
-
|- !R. WF R = !B. (?w. B w) ==> ?min. B min /\ !b. R b min ==> ~B b
- EMPTY_REL_DEF
-
|- !x y. EMPTY_REL x y = F
- inv_image_def
-
|- !R f. inv_image R f = (\x y. R (f x) (f y))
- RESTRICT_DEF
-
|- !f R x. RESTRICT f R x = (\y. (if R y x then f y else ARB))
- approx_def
-
|- !R M x f. approx R M x f = (f = RESTRICT (\y. M (RESTRICT f R y) y) R x)
- the_fun_def
-
|- !R M x. the_fun R M x = @f. approx R M x f
- WFREC_DEF
-
|- !R M.
WFREC R M =
(\x. M (RESTRICT (the_fun (TC R) (\f v. M (RESTRICT f R v) v) x) R x) x)
- TC_TRANSITIVE
-
|- !R. transitive (TC R)
- RTC_INDUCT
-
|- !R P.
(!x. P x x) /\ (!x y z. R x y /\ P y z ==> P x z) ==>
!x y. RTC R x y ==> P x y
- TC_RULES
-
|- !R. (!x y. R x y ==> TC R x y) /\ !x y z. TC R x y /\ TC R y z ==> TC R x z
- RTC_RULES
-
|- !R. (!x. RTC R x x) /\ !x y z. R x y /\ RTC R y z ==> RTC R x z
- RTC_STRONG_INDUCT
-
|- !R P.
(!x. P x x) /\ (!x y z. R x y /\ RTC R y z /\ P y z ==> P x z) ==>
!x y. RTC R x y ==> P x y
- RTC_RTC
-
|- !R x y. RTC R x y ==> !z. RTC R y z ==> RTC R x z
- RTC_TRANSITIVE
-
|- !R. transitive (RTC R)
- RTC_REFLEXIVE
-
|- !R. reflexive (RTC R)
- RC_REFLEXIVE
-
|- !R. reflexive (RC R)
- TC_SUBSET
-
|- !R x y. R x y ==> TC R x y
- RTC_SUBSET
-
|- !R x y. R x y ==> RTC R x y
- RC_SUBSET
-
|- !R x y. R x y ==> RC R x y
- RC_RTC
-
|- !R x y. RC R x y ==> RTC R x y
- TC_INDUCT
-
|- !R P.
(!x y. R x y ==> P x y) /\ (!x y z. P x y /\ P y z ==> P x z) ==>
!u v. TC R u v ==> P u v
- TC_INDUCT_LEFT1
-
|- !R P.
(!x y. R x y ==> P x y) /\ (!x y z. R x y /\ P y z ==> P x z) ==>
!x y. TC R x y ==> P x y
- TC_STRONG_INDUCT
-
|- !R P.
(!x y. R x y ==> P x y) /\
(!x y z. P x y /\ P y z /\ TC R x y /\ TC R y z ==> P x z) ==>
!u v. TC R u v ==> P u v
- TC_STRONG_INDUCT_LEFT1
-
|- !R P.
(!x y. R x y ==> P x y) /\
(!x y z. R x y /\ P y z /\ TC R y z ==> P x z) ==>
!u v. TC R u v ==> P u v
- TC_RTC
-
|- !R x y. TC R x y ==> RTC R x y
- RTC_TC_RC
-
|- !R x y. RTC R x y ==> RC R x y \/ TC R x y
- TC_RC_EQNS
-
|- !R. (RC (TC R) = RTC R) /\ (TC (RC R) = RTC R)
- RC_IDEM
-
|- !R. RC (RC R) = RC R
- TC_IDEM
-
|- !R. TC (TC R) = TC R
- RTC_IDEM
-
|- !R. RTC (RTC R) = RTC R
- RTC_CASES1
-
|- !R x y. RTC R x y = (x = y) \/ ?u. R x u /\ RTC R u y
- RTC_CASES2
-
|- !R x y. RTC R x y = (x = y) \/ ?u. RTC R x u /\ R u y
- RTC_CASES_RTC_TWICE
-
|- !R x y. RTC R x y = ?u. RTC R x u /\ RTC R u y
- TC_CASES1
-
|- !R x z. TC R x z ==> R x z \/ ?y. R x y /\ TC R y z
- TC_CASES2
-
|- !R x z. TC R x z ==> R x z \/ ?y. TC R x y /\ R y z
- TC_MONOTONE
-
|- !R Q. (!x y. R x y ==> Q x y) ==> !x y. TC R x y ==> TC Q x y
- RTC_MONOTONE
-
|- !R Q. (!x y. R x y ==> Q x y) ==> !x y. RTC R x y ==> RTC Q x y
- WF_INDUCTION_THM
-
|- !R. WF R ==> !P. (!x. (!y. R y x ==> P y) ==> P x) ==> !x. P x
- WF_NOT_REFL
-
|- !R x y. WF R ==> R x y ==> ~(x = y)
- WF_EMPTY_REL
-
|- WF EMPTY_REL
- WF_SUBSET
-
|- !R P. WF R /\ (!x y. P x y ==> R x y) ==> WF P
- WF_TC
-
|- !R. WF R ==> WF (TC R)
- WF_inv_image
-
|- !R f. WF R ==> WF (inv_image R f)
- RESTRICT_LEMMA
-
|- !f R y z. R y z ==> (RESTRICT f R z y = f y)
- WFREC_THM
-
|- !R M. WF R ==> !x. WFREC R M x = M (RESTRICT (WFREC R M) R x) x
- WFREC_COROLLARY
-
|- !M R f. (f = WFREC R M) ==> WF R ==> !x. f x = M (RESTRICT f R x) x
- WF_RECURSION_THM
-
|- !R. WF R ==> !M. ?!f. !x. f x = M (RESTRICT f R x) x