Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Topological structures on numFields #188

Closed
wants to merge 1 commit into from

Conversation

affeldt-aist
Copy link
Member

Is this change of canonical structures correct?

@affeldt-aist affeldt-aist added the question ❓ There is an unanswered question here label Apr 24, 2020
@affeldt-aist affeldt-aist requested a review from CohenCyril April 24, 2020 20:36
@CohenCyril
Copy link
Member

Is this change of canonical structures correct?

nop, there should be a structure merge between numDomainType and pointedType

Copy link
Member

@CohenCyril CohenCyril left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there should be a "pointedNumDomain" Structure :-/
But it's too heavy with HB...

@affeldt-aist
Copy link
Member Author

But it's too heavy with HB...

You mean without?

@CohenCyril
Copy link
Member

But it's too heavy with HB...

You mean without?

yes, without

@affeldt-aist affeldt-aist force-pushed the locallyN_lim_cst_generalization branch from 483fb14 to 1a8fa85 Compare May 4, 2020 16:24
@CohenCyril
Copy link
Member

CohenCyril commented May 7, 2020

So in the end, with @mkerjean suggestion, this will happen... but as part of a bigger commit making all numFieldType canonically normedModType
(EDIT: replaced numDomainType by numFieldType)

@affeldt-aist
Copy link
Member Author

there should be a "pointedNumDomain" Structure :-/
But it's too heavy with HB...

Something like that?

Module PointedNumDomain.
Section ClassDef.
Record class_of T := Class {
  base : Num.NumDomain.class_of T ;
  pointed_mixin : Pointed.point_of T }.
Local Coercion base : class_of >-> Num.NumDomain.class_of.
Local Coercion pointed_base T (class_of_T : class_of T) :=
  @Pointed.Class _ class_of_T (pointed_mixin class_of_T).

Structure type := Pack { sort ; _ : class_of sort }.
Local Coercion sort : type >-> Sortclass.
Variables (T : Type) (cT : type).
Definition class := let: Pack _ c as cT' := cT return class_of cT' in c.
Let xT := let: Pack T _ := cT in T.
Notation xclass := (class : class_of xT).
Definition clone c of phant_id class c := @Pack T c.
Definition pack (b0 : Num.NumDomain.class_of T) (pm0 : @Pointed.point_of T) :=
  fun bT (b : Num.NumDomain.class_of T)
    & phant_id (@Num.NumDomain.class bT) b =>
  fun pm & phant_id pm0 pm => @Pack T (@Class T b pm).

Definition eqType := @Equality.Pack cT xclass.
Definition choiceType := @Choice.Pack cT xclass.
Definition zmodType := @GRing.Zmodule.Pack cT xclass.
Definition ringType := @GRing.Ring.Pack cT xclass.
Definition comRingType := @GRing.ComRing.Pack cT xclass.
Definition unitRingType := @GRing.UnitRing.Pack cT xclass.
Definition comUnitRingType := @GRing.ComUnitRing.Pack cT xclass.
Definition idomainType := @GRing.IntegralDomain.Pack cT xclass.
Definition numDomainType := @Num.NumDomain.Pack cT xclass.
Definition pointedType := @Pointed.Pack cT xclass.
End ClassDef.

Module Exports.
Coercion sort : type >-> Sortclass.
Bind Scope ring_scope with sort.
Coercion base  : class_of >-> Num.NumDomain.class_of.
Coercion pointed_base : class_of >-> Pointed.class_of.
Coercion eqType : type >-> Equality.type.
Canonical eqType.
Coercion choiceType : type >-> Choice.type.
Canonical choiceType.
Coercion zmodType : type >-> GRing.Zmodule.type.
Canonical zmodType.
Coercion ringType : type >-> GRing.Ring.type.
Canonical ringType.
Coercion comRingType : type >-> GRing.ComRing.type.
Canonical comRingType.
Coercion unitRingType : type >-> GRing.UnitRing.type.
Canonical unitRingType.
Coercion comUnitRingType : type >-> GRing.ComUnitRing.type.
Canonical comUnitRingType.
Coercion idomainType : type >-> GRing.IntegralDomain.type.
Canonical idomainType.
Coercion numDomainType : type >-> Num.NumDomain.type.
Canonical numDomainType.
Coercion pointedType : type >-> Pointed.type.
Canonical pointedType.
Notation pointedNumDomainType := type.
Notation PointedNumDomainType T m := (@pack T m _ id _ id _).
Notation "[ 'pointedNumDomainType' 'of' T 'for' cT ]" := (@clone T cT _ idfun)
  (at level 0, format "[ 'pointedNumDomainType'  'of'  T  'for'  cT ]") : form_scope.
Notation "[ 'pointedNumDomainType' 'of' T ]" := (@clone T _ _ id)
  (at level 0, format "[ 'pointedNumDomainType'  'of'  T ]") : form_scope.
End Exports.
End PointedNumDomain.
Import PointedNumDomain.Exports.

@CohenCyril
Copy link
Member

CohenCyril commented May 12, 2020

Hum, no, I meant, with @mkerjean's suggestion, we do not have dedicated structures, but we indeed do what your PR originally did, but on a larger scale (every structure above num field should have coercions and canonicals to pointed, filtered, topological, pseudometric and normed types...)
(EDIT: I replaced num domain by num field)

@mkerjean
Copy link
Collaborator

mkerjean commented May 14, 2020

Hum, no, I meant, with @mkerjean's suggestion, we do not have dedicated structures, but we indeed do what your PR originally did, but on a larger scale (every structure above num domains should have coercions and canonicals to pointed, filtered, topological, pseudometric and normed types...)

I'll be updating this PR today (AoE maybe).

@mkerjean mkerjean changed the title small generalizations of locallyN and lim_cst Topological structures on numDomains and numFields May 14, 2020
@CohenCyril CohenCyril changed the title Topological structures on numDomains and numFields Topological structures on numFields May 15, 2020
@affeldt-aist affeldt-aist marked this pull request as draft July 20, 2020 13:27
@affeldt-aist
Copy link
Member Author

(to be closed, see #205)

@CohenCyril
Copy link
Member

Subsumed by #205

@CohenCyril CohenCyril closed this Dec 7, 2020
@affeldt-aist affeldt-aist deleted the locallyN_lim_cst_generalization branch December 8, 2020 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question ❓ There is an unanswered question here
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants