equal
deleted
inserted
replaced
351 section{*Fundamental properties of the epsilon ordering (< on ordinals)*} |
351 section{*Fundamental properties of the epsilon ordering (< on ordinals)*} |
352 |
352 |
353 |
353 |
354 subsubsection{*Proving That < is a Linear Ordering on the Ordinals*} |
354 subsubsection{*Proving That < is a Linear Ordering on the Ordinals*} |
355 |
355 |
356 lemma Ord_linear [rule_format]: |
356 lemma Ord_linear: |
357 "Ord(i) ==> (\<forall>j. Ord(j) \<longrightarrow> i\<in>j | i=j | j\<in>i)" |
357 "Ord(i) \<Longrightarrow> Ord(j) \<Longrightarrow> i\<in>j | i=j | j\<in>i" |
358 apply (erule trans_induct) |
358 proof (induct i arbitrary: j rule: trans_induct) |
359 apply (rule impI [THEN allI]) |
359 case (step i) |
360 apply (erule_tac i=j in trans_induct) |
360 note step_i = step |
361 apply (blast dest: Ord_trans) |
361 show ?case using `Ord(j)` |
362 done |
362 proof (induct j rule: trans_induct) |
|
363 case (step j) |
|
364 thus ?case using step_i |
|
365 by (blast dest: Ord_trans) |
|
366 qed |
|
367 qed |
363 |
368 |
364 text{*The trichotomy law for ordinals*} |
369 text{*The trichotomy law for ordinals*} |
365 lemma Ord_linear_lt: |
370 lemma Ord_linear_lt: |
366 assumes o: "Ord(i)" "Ord(j)" |
371 assumes o: "Ord(i)" "Ord(j)" |
367 obtains (lt) "i<j" | (eq) "i=j" | (gt) "j<i" |
372 obtains (lt) "i<j" | (eq) "i=j" | (gt) "j<i" |