-theorem to_transitive:
- ∀C.∀le:C→C→Prop. is_total_order_relation ? le → transitive ? le.
- intros;
- unfold transitive;
- intros;
- elim (to_cotransitive ? ? i ? ? z H);
- [ assumption
- | rewrite < (to_antisimmetry ? ? i ? ? H1 t);
- assumption
- ].
+(*CSC: the following lemma (that is also a coercion) should be automatically
+ generated *)
+lemma of_cotransitively_ordered_set : pre_ordered_field_ch0 → cotransitively_ordered_set.
+ intro F;
+ apply mk_cotransitively_ordered_set;
+ [ apply mk_ordered_set;
+ [ apply (carrier F)
+ | apply
+ (eq_rect ? ? (λC:Type.C→C→Prop) (os_le (of_cotransitively_ordered_set_ F)) ? (of_with F))
+ | apply
+ (eq_rect' Type (os_carrier (of_cotransitively_ordered_set_ F))
+ (λa:Type.λH:os_carrier (of_cotransitively_ordered_set_ F)=a.
+ is_order_relation a (eq_rect Type (os_carrier (of_cotransitively_ordered_set_ F)) (λC:Type.C→C→Prop) (os_le (of_cotransitively_ordered_set_ F)) a H))
+ ? (Type_OF_pre_ordered_field_ch0 F) (of_with F));
+ simplify;
+ apply (os_order_relation_properties (of_cotransitively_ordered_set_ F))
+ ]
+ | simplify;
+ apply
+ (eq_rect' ? ?
+ (λa:Type.λH:os_carrier (of_cotransitively_ordered_set_ F)=a.
+ cotransitive a
+ match H in eq
+ return
+ λa2:Type.λH1:os_carrier (of_cotransitively_ordered_set_ F)=a2.
+ a2→a2→Prop
+ with
+ [refl_eq ⇒ os_le (of_cotransitively_ordered_set_ F)])
+ ? ? (of_with F));
+ simplify;
+ apply cos_cotransitive
+ ].