List of polarities stemming from POLARITY pragma.
ModuleAgda-2.8.0.2Haskell2010
Agda.TypeChecking.Positivity.Occurrence
Occurrences.
- 4 types
- 3 values
- PackageAgda-2.8.0.2
- Exports7
- LanguageHaskell2010
- LicenceMIT
- SourceOccurrence.hs
Subterm occurrences for positivity checking.
The constructors are listed in increasing information they provide:
Mixed <= JustPos <= StrictPos <= GuardPos <= Unused
Mixed <= JustNeg <= Unused.
Instances16Bounded, Enum, Eq, Ord, Show, NFData, …
Bounded OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceEnum OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceEq OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceOrd OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceShow OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceNFData OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrencePretty OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceNull OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrencePrettyTCM OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.PrettySemiRing OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceOccurrence is a complete lattice with least element Mixed and greatest element Unused.
It forms a commutative semiring where oplus is meet (glb) and otimes is composition. Both operations are idempotent.
For oplus, Unused is neutral (zero) and Mixed is dominant. For otimes, StrictPos is neutral (one) and Unused is dominant.
KillRange OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrencePrettyTCMWithNode OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.PrettyStarSemiRing OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceEmbPrj OccurrenceDefined in Agda-2.8.0.2 · Agda.TypeChecking.Serialise.Instances.Internal · orphanApply [Occurrence]Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphanAbstract [Occurrence]Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
Description of an occurrence.
Constructors
Instances12Eq, Ord, Show, Generic, NFData, Pretty, …
Eq OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceOrd OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceShow OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceGeneric OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceNFData OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrencePretty OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceNull OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceSized OccursWhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrencePrettyTCM (Seq OccursWhere)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity · orphanSemiRing (Edge (Seq OccursWhere))Defined in Agda-2.8.0.2 · Agda.TypeChecking.PositivityThese operations form a semiring if we quotient by the relation "the Occurrence components are equal".
PrettyTCMWithNode (Edge OccursWhere)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Positivitytype Rep OccursWhere = D1 ('MetaDataDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.Occurrence"OccursWhere"
"Agda.TypeChecking.Positivity.Occurrence"
"Agda-2.8.0.2-3KZoCGOoan2Kayji4DU37s"
'False) (C1 ('MetaCons"OccursWhere"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq Where)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq Where)))))
One part of the description of an occurrence.
Constructors
LeftOfArrowDefArg QName Natin the nth argument of a define constant
UnderInfin the principal argument of built-in ∞
VarArg Occurrence Natas an argument to a bound variable. The polarity, if given, is the polarity of the argument the occurence is in
MetaArgas an argument of a metavariable
ConArgType QNamein the type of a constructor
IndArgType QNamein a datatype index of a constructor
ConEndpoint QNamein an endpoint of a higher constructor
InClause Natin the nth clause of a defined function
Matchedmatched against in a clause of a defined function
IsIndexis an index of an inductive family
InDefOf QNamein the definition of a constant
Instances7Eq, Ord, Show, Generic, NFData, Pretty, …
Eq WhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceOrd WhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceShow WhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceGeneric WhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrenceNFData WhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.OccurrencePretty WhereDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.Occurrencetype Rep Where = D1 ('MetaDataDefined in Agda-2.8.0.2 · Agda.TypeChecking.Positivity.Occurrence"Where"
"Agda.TypeChecking.Positivity.Occurrence"
"Agda-2.8.0.2-3KZoCGOoan2Kayji4DU37s"
'False) (((C1 ('MetaCons"LeftOfArrow"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"DefArg"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Nat)) :+: C1 ('MetaCons"UnderInf"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"VarArg"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Occurrence) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Nat)) :+: (C1 ('MetaCons"MetaArg"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ConArgType"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName))))) :+: ((C1 ('MetaCons"IndArgType"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName)) :+: (C1 ('MetaCons"ConEndpoint"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName)) :+: C1 ('MetaCons"InClause"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Nat)))) :+: (C1 ('MetaCons"Matched"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"IsIndex"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InDefOf"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName))))))
productOfEdgesInBoundedWalk occ g u v bound returns a value
distinct from Nothing iff there is a walk c (a list of edges)
in g, from u to v, for which the product foldr1 otimes
(map occ c) <= bound. In this case the returned value is
Just (foldr1 otimes c) for one such walk c.
Preconditions: u and v must belong to g, and bound must
belong to the domain of boundToEverySome.