-record is_ordered_field_ch0 (F:field) (le:F→F→Prop) : Type \def
- { of_total_order_relation:> is_total_order_relation ? le;
- of_mult_compat: ∀a,b. le 0 a → le 0 b → le 0 (a*b);
- of_plus_compat: ∀a,b,c. le a b → le (a+c) (b+c);
- of_weak_tricotomy : ∀a,b. a≠b → le a b ∨ le b a;
+lemma of_ordered_abelian_group: pre_ordered_field_ch0 → ordered_abelian_group.
+ intro F;
+ apply mk_ordered_abelian_group;
+ [ apply mk_pre_ordered_abelian_group;
+ [ apply (r_abelian_group F)
+ | apply (og_ordered_set (of_ordered_abelian_group_ F))
+ | apply (eq_f ? ? carrier);
+ apply (of_with2 F)
+ ]
+ |
+ apply
+ (eq_rect' ? ?
+ (λG:abelian_group.λH:og_abelian_group (of_ordered_abelian_group_ F)=G.
+ is_ordered_abelian_group
+ (mk_pre_ordered_abelian_group G (of_ordered_abelian_group_ F)
+ (eq_f abelian_group Type carrier (of_ordered_abelian_group_ F) G
+ H)))
+ ? ? (of_with2 F));
+ simplify;
+ apply (og_ordered_abelian_group_properties (of_ordered_abelian_group_ F))
+ ]
+qed.
+
+coercion cic:/matita/ordered_fields_ch0/of_ordered_abelian_group.con.
+
+(*CSC: I am not able to prove this since unfold is undone by coercion composition*)
+axiom of_with1:
+ ∀G:pre_ordered_field_ch0.
+ cos_ordered_set (of_cotransitively_ordered_set_ G) =
+ og_ordered_set (of_ordered_abelian_group G).
+
+lemma of_cotransitively_ordered_set : pre_ordered_field_ch0 → cotransitively_ordered_set.
+ intro F;
+ apply mk_cotransitively_ordered_set;
+ [ apply (og_ordered_set F)
+ | apply
+ (eq_rect ? ? (λa:ordered_set.cotransitive (os_carrier a) (os_le a))
+ ? ? (of_with1 F));
+ apply cos_cotransitive
+ ]
+qed.
+
+coercion cic:/matita/ordered_fields_ch0/of_cotransitively_ordered_set.con.
+
+record is_ordered_field_ch0 (F:pre_ordered_field_ch0) : Type \def
+ { of_mult_compat: ∀a,b:F. 0≤a → 0≤b → 0≤a*b;
+ of_weak_tricotomy : ∀a,b:F. a≠b → a≤b ∨ b≤a;