@@ -516,15 +516,15 @@ module Impose (AtomSet : 𝔸) where
516516 foldl _⊙_ (xs ⊙ z) (y ∷ ys)
517517 ≡⟨⟩
518518 foldl _⊙_ ((xs ⊙ z) ⊙ y) ys
519- ≡⟨ Eq.cong (λ x → foldl _⊙_ x ys) (reorder-⊙ xs y z (≉-sym z≉y) z∈xs) ⟩
520- foldl _⊙_ ((xs ⊙ y) ⊙ z) ys
521519 ≡⟨⟩
522- foldl _⊙_ (xs ⊙ y) (z ∷ ys)
523- ≡⟨ reorder-after-⊕ (xs ⊙ y) ys z (∈-⊙ˡ z xs y z∈xs) z∉ys ⟩
524- foldl _⊙_ xs (y ∷ (ys ⊙ z))
525- ≡⟨ Eq.cong (foldl _⊙_ xs) (compute-⊙-excludes y ys z z≉y) ⟨
526- foldl _⊙_ xs ((y ∷ ys) ⊙ z)
520+ ((xs ⊙ z) ⊙ y) ⊕ ys
521+ ≡⟨ Eq.cong (_⊕ ys) (reorder-⊙ xs y z (≉-sym z≉y) z∈xs) ⟩
522+ ((xs ⊙ y) ⊙ z) ⊕ ys
527523 ≡⟨⟩
524+ (xs ⊙ y) ⊕ (z ∷ ys)
525+ ≡⟨ reorder-after-⊕ (xs ⊙ y) ys z (∈-⊙ˡ z xs y z∈xs) z∉ys ⟩
526+ xs ⊕ (y ∷ (ys ⊙ z))
527+ ≡⟨ Eq.cong (xs ⊕_) (compute-⊙-excludes y ys z z≉y) ⟨
528528 xs ⊕ ((y ∷ ys) ⊙ z)
529529 ∎
530530
@@ -575,16 +575,20 @@ module Impose (AtomSet : 𝔸) where
575575 foldl _⊙_ xs (z -< cs₁ ⊕ cs₂ >- ∷ ys)
576576 ≡⟨⟩
577577 foldl _⊙_ (xs ⊙ (z -< cs₁ ⊕ cs₂ >-)) ys
578+ ≡⟨⟩
579+ (xs ⊙ (z -< cs₁ ⊕ cs₂ >-)) ⊕ ys
578580 ≡⟨ Eq.cong (λ x → foldl _⊙_ x ys) (⊙-⊕-distrib xs z cs₁ cs₂ xs-wf cs₁-wf z-wf) ⟩
579- foldl _⊙_ ((xs ⊙ z -< cs₁ >-) ⊙ (z -< cs₂ >-)) ys
581+ ((xs ⊙ z -< cs₁ >-) ⊙ (z -< cs₂ >-)) ⊕ ys
580582 ≡⟨⟩
581- foldl _⊙_ (xs ⊙ z -< cs₁ >-) (z -< cs₂ >- ∷ ys)
583+ (xs ⊙ z -< cs₁ >-) ⊕ (z -< cs₂ >- ∷ ys)
582584 ≡⟨ reorder-after-⊕ (xs ⊙ z -< cs₁ >-) ys (z -< cs₂ >-) (∈-⊙ʳ (z -< cs₂ >-) xs (z -< cs₁ >-) refl) z∉ys ⟩
583- foldl _⊙_ (xs ⊙ z -< cs₁ >-) (ys ⊙ z -< cs₂ >-)
585+ (xs ⊙ z -< cs₁ >-) ⊕ (ys ⊙ z -< cs₂ >-)
584586 ≡⟨ ⊕-⊙-assoc-excludes (xs ⊙ z -< cs₁ >-) ys (z -< cs₂ >-) z∉ys ⟩
585- foldl _⊙_ ( xs ⊙ z -< cs₁ >-) ys ⊙ (z -< cs₂ >-)
587+ (( xs ⊙ z -< cs₁ >-) ⊕ ys) ⊙ (z -< cs₂ >-)
586588 ≡⟨⟩
587- foldl _⊙_ xs (z -< cs₁ >- ∷ ys) ⊙ (z -< cs₂ >-)
589+ (foldl _⊙_ (xs ⊙ z -< cs₁ >-) ys) ⊙ (z -< cs₂ >-)
590+ ≡⟨⟩
591+ (foldl _⊙_ xs (z -< cs₁ >- ∷ ys)) ⊙ (z -< cs₂ >-)
588592 ≡⟨⟩
589593 (xs ⊕ (z -< cs₁ >- ∷ ys)) ⊙ (z -< cs₂ >-)
590594 ∎
@@ -612,15 +616,19 @@ module Impose (AtomSet : 𝔸) where
612616 ⊕-assoc xs ys (z ∷ zs) xs-wf ys-wf (_ ∷ zs-unique , z-wf ∷ zs-wf) =
613617 xs ⊕ (ys ⊕ (z ∷ zs))
614618 ≡⟨⟩
615- foldl _⊙_ xs (foldl _⊙_ ys (z ∷ zs))
619+ xs ⊕ foldl _⊙_ ys (z ∷ zs)
620+ ≡⟨⟩
621+ xs ⊕ foldl _⊙_ (ys ⊙ z) zs
616622 ≡⟨⟩
617- foldl _⊙_ xs (foldl _⊙_ ( ys ⊙ z) zs)
623+ xs ⊕ (( ys ⊙ z) ⊕ zs)
618624 ≡⟨ ⊕-assoc xs (ys ⊙ z) zs xs-wf (⊙-wf ys-wf z-wf) (zs-unique , zs-wf) ⟩
619- foldl _⊙_ (foldl _⊙_ xs (ys ⊙ z)) zs
625+ ( xs ⊕ (ys ⊙ z)) ⊕ zs
620626 ≡⟨ Eq.cong (λ x → foldl _⊙_ x zs) (⊕-⊙-assoc xs ys z xs-wf ys-wf z-wf) ⟩
621- foldl _⊙_ (foldl _⊙_ xs ys ⊙ z) zs
627+ (( xs ⊕ ys) ⊙ z) ⊕ zs
622628 ≡⟨⟩
623- foldl _⊙_ (foldl _⊙_ xs ys) (z ∷ zs)
629+ foldl _⊙_ ((xs ⊕ ys) ⊙ z) zs
630+ ≡⟨⟩
631+ foldl _⊙_ (xs ⊕ ys) (z ∷ zs)
624632 ≡⟨⟩
625633 (xs ⊕ ys) ⊕ (z ∷ zs)
626634 ∎
@@ -697,18 +705,20 @@ module Impose (AtomSet : 𝔸) where
697705 ⊕-++-idem xs₁ (x ∷ xs₂) ys (xs-unique , xs-wf) ys-wf =
698706 (xs₁ ++ (x ∷ xs₂)) ⊕ (ys ⊕ (x ∷ xs₂))
699707 ≡⟨⟩
700- foldl _⊙_ (xs₁ ++ (x ∷ xs₂)) (foldl _⊙_ ys (x ∷ xs₂))
708+ (xs₁ ++ (x ∷ xs₂)) ⊕ foldl _⊙_ ys (x ∷ xs₂)
709+ ≡⟨⟩
710+ (xs₁ ++ (x ∷ xs₂)) ⊕ foldl _⊙_ (ys ⊙ x) xs₂
701711 ≡⟨⟩
702712 foldl _⊙_ (xs₁ ++ (x ∷ xs₂)) (foldl _⊙_ (ys ⊙ x) xs₂)
703- ≡⟨ Eq.cong (λ p → foldl _⊙_ p (foldl _⊙_ (ys ⊙ x) xs₂)) (List.∷ʳ-++ xs₁ x xs₂) ⟨
704- foldl _⊙_ ((xs₁ ∷ʳ x) ++ xs₂) (foldl _⊙_ (ys ⊙ x) xs₂)
713+ ≡⟨⟩
714+ (xs₁ ++ (x ∷ xs₂)) ⊕ ((ys ⊙ x) ⊕ xs₂)
715+ ≡⟨ Eq.cong (_⊕ ((ys ⊙ x) ⊕ xs₂)) (List.∷ʳ-++ xs₁ x xs₂) ⟨
716+ ((xs₁ ∷ʳ x) ++ xs₂) ⊕ ((ys ⊙ x) ⊕ xs₂)
705717 ≡⟨ ⊕-++-idem (xs₁ ∷ʳ x) xs₂ (ys ⊙ x) (Eq.subst AllWellFormed (Eq.sym (List.∷ʳ-++ xs₁ x xs₂)) (xs-unique , xs-wf)) (⊙-wf ys-wf (All.head (All.++⁻ʳ xs₁ xs-wf))) ⟩
706- foldl _⊙_ ((xs₁ ∷ʳ x) ++ xs₂) (ys ⊙ x)
707- ≡⟨ Eq.cong (λ p → foldl _⊙_ p (ys ⊙ x)) (List.∷ʳ-++ xs₁ x xs₂) ⟩
708- foldl _⊙_ (xs₁ ++ (x ∷ xs₂)) (ys ⊙ x)
718+ ((xs₁ ∷ʳ x) ++ xs₂) ⊕ (ys ⊙ x)
719+ ≡⟨ Eq.cong (_⊕ (ys ⊙ x)) (List.∷ʳ-++ xs₁ x xs₂) ⟩
720+ (xs₁ ++ (x ∷ xs₂)) ⊕ (ys ⊙ x)
709721 ≡⟨ ⊙-distant-idempotence (xs₁ ++ (x ∷ xs₂)) ys x (xs-unique , xs-wf) ys-wf (All.head (All.++⁻ʳ xs₁ xs-wf)) (Any.++⁺ʳ xs₁ (here refl)) ⟩
710- foldl _⊙_ (xs₁ ++ (x ∷ xs₂)) ys
711- ≡⟨⟩
712722 (xs₁ ++ (x ∷ xs₂)) ⊕ ys
713723 ∎
714724
0 commit comments