Created
September 3, 2013 15:38
-
-
Save mathink/6425565 to your computer and use it in GitHub Desktop.
Typoid_Typoid は Universe inconsistency になる.のは,そりゃそうだろって感じなんですが,Typoid_is_Typoid が作れるのはいい感じだなぁ,などと思っている.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Class is_Typoid (carrier: Type): Type := | |
{ equal: relation carrier; | |
prf_equiv :> Equivalence equal }. | |
Class Typoid: Type := | |
{ typoid_carrier: Type; | |
is_typoid:> is_Typoid typoid_carrier }. | |
Coercion typoid_carrier: Typoid >-> Sortclass. | |
Definition eq_Typoid (S T: Typoid) := | |
typoid_carrier (Typoid:=S) = typoid_carrier (Typoid:=T). | |
Program Instance Typoid_is_Typoid : is_Typoid Typoid := | |
{ equal := eq_Typoid }. | |
Next Obligation. | |
split. | |
rewrite /Reflexive /eq_Typoid; congruence. | |
rewrite /Symmetric /eq_Typoid; congruence. | |
rewrite /Transitive /eq_Typoid; congruence. | |
Qed. | |
Program Instance Typoid_Typoid: Typoid := | |
{ is_typoid := Typoid_is_Typoid }. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment