diff options
| author | Georges Gonthier | 2015-11-30 15:39:56 +0000 |
|---|---|---|
| committer | Georges Gonthier | 2015-12-04 15:07:14 +0000 |
| commit | 70073eb8b670d43e8dc236b7a4da61a0b1241c73 (patch) | |
| tree | 539d82f2b5a0f0e9c36c9bf1906baaab0763ead9 /mathcomp | |
| parent | 8a5defae11364964b6ca47a6da6ae887f7180855 (diff) | |
Remove redundant structures for finite powers
Diffstat (limited to 'mathcomp')
| -rw-r--r-- | mathcomp/ssreflect/finfun.v | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/mathcomp/ssreflect/finfun.v b/mathcomp/ssreflect/finfun.v index ca148e2..09f94f0 100644 --- a/mathcomp/ssreflect/finfun.v +++ b/mathcomp/ssreflect/finfun.v @@ -10,7 +10,7 @@ Require Import ssrfun ssrbool eqtype ssrnat seq choice fintype tuple. (* Any eqType, choiceType, countType and finType structures on rT extend to *) (* {ffun aT -> rT} as Leibnitz equality and extensional equalities coincide. *) (* (T ^ n)%type is notation for {ffun 'I_n -> T}, which is isomorphic *) -(* ot n.-tuple T. *) +(* to n.-tuple T. *) (* For f : {ffun aT -> rT}, we define *) (* f x == the image of x under f (f coerces to a CiC function) *) (* fgraph f == the graph of f, i.e., the #|aT|.-tuple rT of the *) @@ -52,13 +52,13 @@ End Def. Notation "{ 'ffun' fT }" := (finfun_of (Phant fT)) (at level 0, format "{ 'ffun' '[hv' fT ']' }") : type_scope. -Definition finexp_domFinType n := ordinal_finType n. -Notation "T ^ n" := (@finfun_of (finexp_domFinType n) T (Phant _)) : type_scope. +Definition exp_finIndexType n := ordinal_finType n. +Notation "T ^ n" := (@finfun_of (exp_finIndexType n) T (Phant _)) : type_scope. -Notation Local fun_of_fin_def := +Local Notation fun_of_fin_def := (fun aT rT f x => tnth (@fgraph aT rT f) (enum_rank x)). -Notation Local finfun_def := (fun aT rT f => @Finfun aT rT (codom_tuple f)). +Local Notation finfun_def := (fun aT rT f => @Finfun aT rT (codom_tuple f)). Module Type FunFinfunSig. Parameter fun_of_fin : forall aT rT, finfun_type aT rT -> aT -> rT. @@ -212,7 +212,6 @@ by move=> x Ax; apply: f_fam; apply/imageP; exists x. Qed. End EqTheory. -Canonical exp_eqType (T : eqType) n := [eqType of T ^ n]. Implicit Arguments supportP [aT rT y D g]. Notation pfamily y D F := (pfamily_mem y (mem D) (fun_of_simpl (fmem F))). @@ -224,7 +223,6 @@ Canonical finfun_choiceType aT rT := Eval hnf in ChoiceType _ (finfun_choiceMixin aT rT). Canonical finfun_of_choiceType (aT : finType) (rT : choiceType) := Eval hnf in [choiceType of {ffun aT -> rT}]. -Canonical exp_choiceType (T : choiceType) n := [choiceType of T ^ n]. Definition finfun_countMixin aT (rT : countType) := [countMixin of finfun_type aT rT by <:]. @@ -301,5 +299,4 @@ Lemma card_ffun : #|fT| = #|rT| ^ #|aT|. Proof. by rewrite -card_ffun_on; apply/esym/eq_card=> f; apply/forallP. Qed. End FinTheory. -Canonical exp_finType (T : finType) n := [finType of T ^ n]. |
