fact: Record structure : Type := Structure { val : Type; set := val -> Prop; rel := val -> set; le : rel; sup : set -> val; add : val -> val -> val; zero : val; opp : val -> val; mul : val -> val -> val; one : val; inv : val -> val }.