@@ -21,13 +21,11 @@ import Algebra.Structures as AlgebraicStructures
21
21
open import Data.Bool.Base using (Bool; false; true; not; if_then_else_)
22
22
open import Data.Fin.Base using (Fin; zero; suc; cast; toℕ)
23
23
open import Data.List.Base as List
24
- open import Data.List.Membership.Propositional using (_∈_)
25
24
open import Data.List.Relation.Unary.All using (All; []; _∷_)
26
25
open import Data.List.Relation.Unary.Any using (Any; here; there)
27
26
open import Data.Maybe.Base as Maybe using (Maybe; just; nothing)
28
27
open import Data.Maybe.Relation.Unary.Any using (just) renaming (Any to MAny)
29
28
open import Data.Nat.Base
30
- open import Data.Nat.Divisibility using (_∣_; divides; ∣n⇒∣m*n)
31
29
open import Data.Nat.Properties
32
30
open import Data.Product.Base as Product
33
31
using (_×_; _,_; uncurry; uncurry′; proj₁; proj₂; <_,_>)
@@ -829,34 +827,6 @@ mapMaybeIsInj₂∘mapInj₂ = mapMaybe-map-retract λ _ → refl
829
827
mapMaybeIsInj₂∘mapInj₁ : (xs : List A) → mapMaybe (isInj₂ {B = B}) (map inj₁ xs) ≡ []
830
828
mapMaybeIsInj₂∘mapInj₁ = mapMaybe-map-none λ _ → refl
831
829
832
- ------------------------------------------------------------------------
833
- -- sum
834
-
835
- sum-++ : ∀ xs ys → sum (xs ++ ys) ≡ sum xs + sum ys
836
- sum-++ [] ys = refl
837
- sum-++ (x ∷ xs) ys = begin
838
- x + sum (xs ++ ys) ≡⟨ cong (x +_) (sum-++ xs ys) ⟩
839
- x + (sum xs + sum ys) ≡⟨ sym (+-assoc x _ _) ⟩
840
- (x + sum xs) + sum ys ∎
841
-
842
- ------------------------------------------------------------------------
843
- -- product
844
-
845
- ∈⇒∣product : ∀ {n ns} → n ∈ ns → n ∣ product ns
846
- ∈⇒∣product {n} {n ∷ ns} (here refl) = divides (product ns) (*-comm n (product ns))
847
- ∈⇒∣product {n} {m ∷ ns} (there n∈ns) = ∣n⇒∣m*n m (∈⇒∣product n∈ns)
848
-
849
- product≢0 : ∀ {ns} → All NonZero ns → NonZero (product ns)
850
- product≢0 [] = _
851
- product≢0 {n ∷ ns} (n≢0 ∷ ns≢0) = m*n≢0 n (product ns) {{n≢0}} {{product≢0 ns≢0}}
852
-
853
- ∈⇒≤product : ∀ {n ns} → All NonZero ns → n ∈ ns → n ≤ product ns
854
- ∈⇒≤product {ns = n ∷ ns} (_ ∷ ns≢0) (here refl) =
855
- m≤m*n n (product ns) {{product≢0 ns≢0}}
856
- ∈⇒≤product {ns = n ∷ _} (n≢0 ∷ ns≢0) (there n∈ns) =
857
- m≤n⇒m≤o*n n {{n≢0}} (∈⇒≤product ns≢0 n∈ns)
858
-
859
-
860
830
------------------------------------------------------------------------
861
831
-- applyUpTo
862
832
@@ -1534,7 +1504,7 @@ module _ (f : A → B) where
1534
1504
1535
1505
1536
1506
------------------------------------------------------------------------
1537
- -- DEPRECATED
1507
+ -- DEPRECATED NAMES
1538
1508
------------------------------------------------------------------------
1539
1509
-- Please use the new names as continuing support for the old names is
1540
1510
-- not guaranteed.
@@ -1565,12 +1535,6 @@ map-++-commute = map-++
1565
1535
Please use map-++ instead."
1566
1536
#-}
1567
1537
1568
- sum-++-commute = sum-++
1569
- {-# WARNING_ON_USAGE sum-++-commute
1570
- "Warning: map-++-commute was deprecated in v2.0.
1571
- Please use map-++ instead."
1572
- #-}
1573
-
1574
1538
reverse-map-commute = reverse-map
1575
1539
{-# WARNING_ON_USAGE reverse-map-commute
1576
1540
"Warning: reverse-map-commute was deprecated in v2.0.
@@ -1658,3 +1622,50 @@ concat-[-] = concat-map-[_]
1658
1622
"Warning: concat-[-] was deprecated in v2.2.
1659
1623
Please use concat-map-[_] instead."
1660
1624
#-}
1625
+
1626
+ -- Version 2.3
1627
+
1628
+ sum-++ : ∀ xs ys → sum (xs ++ ys) ≡ sum xs + sum ys
1629
+ sum-++ [] ys = refl
1630
+ sum-++ (x ∷ xs) ys = begin
1631
+ x + sum (xs ++ ys) ≡⟨ cong (x +_) (sum-++ xs ys) ⟩
1632
+ x + (sum xs + sum ys) ≡⟨ +-assoc x _ _ ⟨
1633
+ (x + sum xs) + sum ys ∎
1634
+ {-# WARNING_ON_USAGE sum-++
1635
+ "Warning: sum-++ was deprecated in v2.3.
1636
+ Please use Data.Nat.ListAction.Properties.sum-++ instead."
1637
+ #-}
1638
+ sum-++-commute = sum-++
1639
+ {-# WARNING_ON_USAGE sum-++-commute
1640
+ "Warning: sum-++-commute was deprecated in v2.0.
1641
+ Please use Data.Nat.ListAction.Properties.sum-++ instead."
1642
+ #-}
1643
+
1644
+ open import Data.List.Membership.Propositional using (_∈_)
1645
+ open import Data.Nat.Divisibility using (_∣_; m∣m*n; ∣n⇒∣m*n)
1646
+
1647
+ ∈⇒∣product : ∀ {n ns} → n ∈ ns → n ∣ product ns
1648
+ ∈⇒∣product {ns = n ∷ ns} (here refl) = m∣m*n (product ns)
1649
+ ∈⇒∣product {ns = m ∷ ns} (there n∈ns) = ∣n⇒∣m*n m (∈⇒∣product n∈ns)
1650
+ {-# WARNING_ON_USAGE ∈⇒∣product
1651
+ "Warning: ∈⇒∣product was deprecated in v2.3.
1652
+ Please use Data.Nat.ListAction.Properties.∈⇒∣product instead."
1653
+ #-}
1654
+
1655
+ product≢0 : ∀ {ns} → All NonZero ns → NonZero (product ns)
1656
+ product≢0 [] = _
1657
+ product≢0 {n ∷ ns} (n≢0 ∷ ns≢0) = m*n≢0 n (product ns) {{n≢0}} {{product≢0 ns≢0}}
1658
+ {-# WARNING_ON_USAGE product≢0
1659
+ "Warning: product≢0 was deprecated in v2.3.
1660
+ Please use Data.Nat.ListAction.Properties.product≢0 instead."
1661
+ #-}
1662
+
1663
+ ∈⇒≤product : ∀ {n ns} → All NonZero ns → n ∈ ns → n ≤ product ns
1664
+ ∈⇒≤product {ns = n ∷ ns} (_ ∷ ns≢0) (here refl) =
1665
+ m≤m*n n (product ns) {{product≢0 ns≢0}}
1666
+ ∈⇒≤product {ns = n ∷ _} (n≢0 ∷ ns≢0) (there n∈ns) =
1667
+ m≤n⇒m≤o*n n {{n≢0}} (∈⇒≤product ns≢0 n∈ns)
1668
+ {-# WARNING_ON_USAGE ∈⇒≤product
1669
+ "Warning: ∈⇒≤product was deprecated in v2.3.
1670
+ Please use Data.Nat.ListAction.Properties.∈⇒≤product instead."
1671
+ #-}
0 commit comments