remove IsOne stuff; add timesSubj
This commit is contained in:
parent
28055c0f39
commit
82795e9976
2 changed files with 9 additions and 11 deletions
|
@ -30,12 +30,6 @@ interface Eq q => IsQty q where
|
||||||
isZero : Dec1 IsZero
|
isZero : Dec1 IsZero
|
||||||
zeroIsZero : IsZero zero
|
zeroIsZero : IsZero zero
|
||||||
|
|
||||||
||| true if bindings of this quantity must be linear
|
|
||||||
-- [fixme] is this needed for anything?
|
|
||||||
IsOne : Pred q
|
|
||||||
isOne : Dec1 IsOne
|
|
||||||
oneIsOne : IsOne one
|
|
||||||
|
|
||||||
||| ``p `Compat` q`` if it is ok for a binding of
|
||| ``p `Compat` q`` if it is ok for a binding of
|
||||||
||| quantity `q` to be used exactly `p` times.
|
||| quantity `q` to be used exactly `p` times.
|
||||||
||| e.g. ``1 `Compat` 1``, ``1 `Compat` ω``
|
||| e.g. ``1 `Compat` 1``, ``1 `Compat` ω``
|
||||||
|
@ -49,6 +43,7 @@ interface Eq q => IsQty q where
|
||||||
isSubj : Dec1 IsSubj
|
isSubj : Dec1 IsSubj
|
||||||
zeroIsSubj : IsSubj zero
|
zeroIsSubj : IsSubj zero
|
||||||
oneIsSubj : IsSubj one
|
oneIsSubj : IsSubj one
|
||||||
|
timesSubj : forall pi, rh. IsSubj pi -> IsSubj rh -> IsSubj (pi * rh)
|
||||||
|
|
||||||
||| true if it is ok for a global definition to have this
|
||| true if it is ok for a global definition to have this
|
||||||
||| quantity. so not exact usage counts, maybe.
|
||| quantity. so not exact usage counts, maybe.
|
||||||
|
@ -75,4 +70,3 @@ GQty q = Subset q IsGlobal
|
||||||
public export %inline
|
public export %inline
|
||||||
gzero : IsQty q => GQty q
|
gzero : IsQty q => GQty q
|
||||||
gzero = Element zero zeroIsGlobal
|
gzero = Element zero zeroIsGlobal
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,13 @@ isSubj3 Zero = Yes SZero
|
||||||
isSubj3 One = Yes SOne
|
isSubj3 One = Yes SOne
|
||||||
isSubj3 Any = No $ \case _ impossible
|
isSubj3 Any = No $ \case _ impossible
|
||||||
|
|
||||||
|
public export
|
||||||
|
timesSubj3 : forall pi, rh. IsSubj3 pi -> IsSubj3 rh -> IsSubj3 (times pi rh)
|
||||||
|
timesSubj3 SZero SZero = SZero
|
||||||
|
timesSubj3 SZero SOne = SZero
|
||||||
|
timesSubj3 SOne SZero = SZero
|
||||||
|
timesSubj3 SOne SOne = SOne
|
||||||
|
|
||||||
|
|
||||||
public export
|
public export
|
||||||
data IsGlobal3 : Pred Three where
|
data IsGlobal3 : Pred Three where
|
||||||
|
@ -89,10 +96,6 @@ IsQty Three where
|
||||||
isZero = decEq Zero
|
isZero = decEq Zero
|
||||||
zeroIsZero = Refl
|
zeroIsZero = Refl
|
||||||
|
|
||||||
IsOne = Equal One
|
|
||||||
isOne = decEq One
|
|
||||||
oneIsOne = Refl
|
|
||||||
|
|
||||||
Compat = Compat3
|
Compat = Compat3
|
||||||
compat = compat3
|
compat = compat3
|
||||||
|
|
||||||
|
@ -100,6 +103,7 @@ IsQty Three where
|
||||||
isSubj = isSubj3
|
isSubj = isSubj3
|
||||||
zeroIsSubj = SZero
|
zeroIsSubj = SZero
|
||||||
oneIsSubj = SOne
|
oneIsSubj = SOne
|
||||||
|
timesSubj = timesSubj3
|
||||||
|
|
||||||
IsGlobal = IsGlobal3
|
IsGlobal = IsGlobal3
|
||||||
isGlobal = isGlobal3
|
isGlobal = isGlobal3
|
||||||
|
|
Loading…
Reference in a new issue