module AssocProofs where
open import Data.List
open import Data.Nat
open import ListExtras
[xs++xs]++xs≡xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs : List A)
→ (as ++ bs) ++ cs ≡ as ++ bs ++ cs
[xs++xs]++xs≡xs++xs++xs = list-solve
((bla :++ bla) :++ bla :≡ bla :++ bla :++ bla)
xs++xs++xs≡[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs : List A)
→ as ++ bs ++ cs ≡ (as ++ bs) ++ cs
xs++xs++xs≡[xs++xs]++xs = list-solve
(bla :++ bla :++ bla :≡ (bla :++ bla) :++ bla)
xs++[xs++xs]++xs≡xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ (bs ++ cs) ++ ds ≡ as ++ bs ++ cs ++ ds
xs++[xs++xs]++xs≡xs++xs++xs++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla)
[xs++xs]++xs++xs≡xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs) ++ cs ++ ds ≡ as ++ bs ++ cs ++ ds
[xs++xs]++xs++xs≡xs++xs++xs++xs = list-solve
((bla :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ bla :++ bla)
[xs++xs++xs]++xs≡xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs ++ cs) ++ ds ≡ as ++ bs ++ cs ++ ds
[xs++xs++xs]++xs≡xs++xs++xs++xs = list-solve
((bla :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla)
[[xs++xs]++xs]++xs≡xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ ((as ++ bs) ++ cs) ++ ds ≡ as ++ bs ++ cs ++ ds
[[xs++xs]++xs]++xs≡xs++xs++xs++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla)
xs++xs++xs++xs≡xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ bs ++ cs ++ ds ≡ as ++ (bs ++ cs) ++ ds
xs++xs++xs++xs≡xs++[xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :≡ bla :++ (bla :++ bla) :++ bla)
[xs++xs]++xs++xs≡xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs) ++ cs ++ ds ≡ as ++ (bs ++ cs) ++ ds
[xs++xs]++xs++xs≡xs++[xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :≡ bla :++ (bla :++ bla) :++ bla)
[xs++xs++xs]++xs≡xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs ++ cs) ++ ds ≡ as ++ (bs ++ cs) ++ ds
[xs++xs++xs]++xs≡xs++[xs++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs≡xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ ((as ++ bs) ++ cs) ++ ds ≡ as ++ (bs ++ cs) ++ ds
[[xs++xs]++xs]++xs≡xs++[xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla)
xs++xs++xs++xs≡[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ bs ++ cs ++ ds ≡ (as ++ bs) ++ cs ++ ds
xs++xs++xs++xs≡[xs++xs]++xs++xs = list-solve
(bla :++ bla :++ bla :++ bla :≡ (bla :++ bla) :++ bla :++ bla)
xs++[xs++xs]++xs≡[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ (bs ++ cs) ++ ds ≡ (as ++ bs) ++ cs ++ ds
xs++[xs++xs]++xs≡[xs++xs]++xs++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla)
[xs++xs++xs]++xs≡[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs ++ cs) ++ ds ≡ (as ++ bs) ++ cs ++ ds
[xs++xs++xs]++xs≡[xs++xs]++xs++xs = list-solve
((bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla)
[[xs++xs]++xs]++xs≡[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ ((as ++ bs) ++ cs) ++ ds ≡ (as ++ bs) ++ cs ++ ds
[[xs++xs]++xs]++xs≡[xs++xs]++xs++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla)
xs++xs++xs++xs≡[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ bs ++ cs ++ ds ≡ (as ++ bs ++ cs) ++ ds
xs++xs++xs++xs≡[xs++xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :≡ (bla :++ bla :++ bla) :++ bla)
xs++[xs++xs]++xs≡[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ (bs ++ cs) ++ ds ≡ (as ++ bs ++ cs) ++ ds
xs++[xs++xs]++xs≡[xs++xs++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla)
[xs++xs]++xs++xs≡[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs) ++ cs ++ ds ≡ (as ++ bs ++ cs) ++ ds
[xs++xs]++xs++xs≡[xs++xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs≡[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ ((as ++ bs) ++ cs) ++ ds ≡ (as ++ bs ++ cs) ++ ds
[[xs++xs]++xs]++xs≡[xs++xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla)
xs++xs++xs++xs≡[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ bs ++ cs ++ ds ≡ ((as ++ bs) ++ cs) ++ ds
xs++xs++xs++xs≡[[xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs]++xs≡[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ as ++ (bs ++ cs) ++ ds ≡ ((as ++ bs) ++ cs) ++ ds
xs++[xs++xs]++xs≡[[xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla)
[xs++xs]++xs++xs≡[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs) ++ cs ++ ds ≡ ((as ++ bs) ++ cs) ++ ds
[xs++xs]++xs++xs≡[[xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs]++xs≡[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds : List A)
→ (as ++ bs ++ cs) ++ ds ≡ ((as ++ bs) ++ cs) ++ ds
[xs++xs++xs]++xs≡[[xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
xs++xs++[xs++xs]++xs≡xs++xs++xs++xs++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
xs++[xs++xs]++xs++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ as ++ bs ++ cs ++ ds ++ es
xs++[xs++xs]++xs++xs≡xs++xs++xs++xs++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
xs++[xs++xs++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
xs++[xs++xs++xs]++xs≡xs++xs++xs++xs++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
xs++[[xs++xs]++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
xs++[[xs++xs]++xs]++xs≡xs++xs++xs++xs++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[xs++xs]++xs++xs++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[xs++xs]++xs++xs++xs≡xs++xs++xs++xs++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[xs++xs]++[xs++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[xs++xs]++[xs++xs]++xs≡xs++xs++xs++xs++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[xs++xs++xs]++xs++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[xs++xs++xs]++xs++xs≡xs++xs++xs++xs++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[[xs++xs]++xs]++xs++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[[xs++xs]++xs]++xs++xs≡xs++xs++xs++xs++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[xs++xs++xs++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[xs++xs++xs++xs]++xs≡xs++xs++xs++xs++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[xs++[xs++xs]++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[xs++[xs++xs]++xs]++xs≡xs++xs++xs++xs++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[[xs++xs]++xs++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[[xs++xs]++xs++xs]++xs≡xs++xs++xs++xs++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[[xs++xs++xs]++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[[xs++xs++xs]++xs]++xs≡xs++xs++xs++xs++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
[[[xs++xs]++xs]++xs]++xs≡xs++xs++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ as ++ bs ++ cs ++ ds ++ es
[[[xs++xs]++xs]++xs]++xs≡xs++xs++xs++xs++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ bla :++ bla :++ bla)
xs++xs++xs++xs++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
xs++xs++xs++xs++xs≡xs++xs++[xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
xs++[xs++xs]++xs++xs≡xs++xs++[xs++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
xs++[xs++xs++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[xs++xs]++xs++xs++xs≡xs++xs++[xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[xs++xs++xs]++xs++xs≡xs++xs++[xs++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡xs++xs++[xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[xs++xs++xs++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡xs++xs++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ as ++ bs ++ (cs ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡xs++xs++[xs++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ bla :++ bla :++ (bla :++ bla) :++ bla)
xs++xs++xs++xs++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
xs++xs++xs++xs++xs≡xs++[xs++xs]++xs++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
xs++xs++[xs++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
xs++xs++[xs++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
xs++[xs++xs++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
xs++[xs++xs++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
xs++[[xs++xs]++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
xs++[[xs++xs]++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[xs++xs]++xs++xs++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[xs++xs]++xs++xs++xs≡xs++[xs++xs]++xs++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[xs++xs]++[xs++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[xs++xs]++[xs++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[xs++xs++xs]++xs++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[xs++xs++xs]++xs++xs≡xs++[xs++xs]++xs++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[[xs++xs]++xs]++xs++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[[xs++xs]++xs]++xs++xs≡xs++[xs++xs]++xs++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[xs++xs++xs++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[xs++xs++xs++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[xs++[xs++xs]++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[xs++[xs++xs]++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[[xs++xs]++xs++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[[xs++xs]++xs++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[[xs++xs++xs]++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[[xs++xs++xs]++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
[[[xs++xs]++xs]++xs]++xs≡xs++[xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs) ++ ds ++ es
[[[xs++xs]++xs]++xs]++xs≡xs++[xs++xs]++xs++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla) :++ bla :++ bla)
xs++xs++xs++xs++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
xs++xs++xs++xs++xs≡xs++[xs++xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
xs++xs++[xs++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
xs++[xs++xs]++xs++xs≡xs++[xs++xs++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[xs++xs]++xs++xs++xs≡xs++[xs++xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[xs++xs++xs]++xs++xs≡xs++[xs++xs++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡xs++[xs++xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[xs++xs++xs++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡xs++[xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ as ++ (bs ++ cs ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡xs++[xs++xs++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ bla :++ (bla :++ bla :++ bla) :++ bla)
xs++xs++xs++xs++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
xs++xs++xs++xs++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
xs++xs++[xs++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
xs++[xs++xs]++xs++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
xs++[xs++xs++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[xs++xs]++xs++xs++xs≡xs++[[xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[xs++xs++xs]++xs++xs≡xs++[[xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[xs++xs++xs++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡xs++[[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ as ++ ((bs ++ cs) ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡xs++[[xs++xs]++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ bla :++ ((bla :++ bla) :++ bla) :++ bla)
xs++xs++xs++xs++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
xs++xs++xs++xs++xs≡[xs++xs]++xs++xs++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
xs++xs++[xs++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
xs++xs++[xs++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
xs++[xs++xs]++xs++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
xs++[xs++xs]++xs++xs≡[xs++xs]++xs++xs++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
xs++[xs++xs++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
xs++[xs++xs++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
xs++[[xs++xs]++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
xs++[[xs++xs]++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[xs++xs]++[xs++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[xs++xs]++[xs++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[xs++xs++xs]++xs++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[xs++xs++xs]++xs++xs≡[xs++xs]++xs++xs++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[[xs++xs]++xs]++xs++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[[xs++xs]++xs]++xs++xs≡[xs++xs]++xs++xs++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[xs++xs++xs++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[xs++xs++xs++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[xs++[xs++xs]++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[xs++[xs++xs]++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[[xs++xs]++xs++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[[xs++xs]++xs++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[[xs++xs++xs]++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[[xs++xs++xs]++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[xs++xs]++xs++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ cs ++ ds ++ es
[[[xs++xs]++xs]++xs]++xs≡[xs++xs]++xs++xs++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ bla :++ bla :++ bla)
xs++xs++xs++xs++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
xs++xs++xs++xs++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
xs++xs++[xs++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
xs++[xs++xs]++xs++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
xs++[xs++xs++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[xs++xs]++xs++xs++xs≡[xs++xs]++[xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[xs++xs++xs]++xs++xs≡[xs++xs]++[xs++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[xs++xs++xs++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ (as ++ bs) ++ (cs ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡[xs++xs]++[xs++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ (bla :++ bla) :++ (bla :++ bla) :++ bla)
xs++xs++xs++xs++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
xs++xs++xs++xs++xs≡[xs++xs++xs]++xs++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
xs++xs++[xs++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
xs++xs++[xs++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
xs++[xs++xs]++xs++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
xs++[xs++xs]++xs++xs≡[xs++xs++xs]++xs++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
xs++[xs++xs++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
xs++[xs++xs++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
xs++[[xs++xs]++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
xs++[[xs++xs]++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[xs++xs]++xs++xs++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[xs++xs]++xs++xs++xs≡[xs++xs++xs]++xs++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[xs++xs]++[xs++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[xs++xs]++[xs++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[[xs++xs]++xs]++xs++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[[xs++xs]++xs]++xs++xs≡[xs++xs++xs]++xs++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[xs++xs++xs++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[xs++xs++xs++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[xs++[xs++xs]++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[xs++[xs++xs]++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[[xs++xs]++xs++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[[xs++xs]++xs++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[[xs++xs++xs]++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[[xs++xs++xs]++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[xs++xs++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs) ++ ds ++ es
[[[xs++xs]++xs]++xs]++xs≡[xs++xs++xs]++xs++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla) :++ bla :++ bla)
xs++xs++xs++xs++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
xs++xs++xs++xs++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
xs++xs++[xs++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
xs++xs++[xs++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
xs++[xs++xs]++xs++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
xs++[xs++xs]++xs++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
xs++[xs++xs++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
xs++[xs++xs++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
xs++[[xs++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
xs++[[xs++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[xs++xs]++xs++xs++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[xs++xs]++xs++xs++xs≡[[xs++xs]++xs]++xs++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[xs++xs]++[xs++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[xs++xs]++[xs++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[xs++xs++xs]++xs++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[xs++xs++xs]++xs++xs≡[[xs++xs]++xs]++xs++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[xs++xs++xs++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[xs++xs++xs++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[xs++[xs++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[xs++[xs++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[[xs++xs]++xs++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[[xs++xs]++xs++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[[xs++xs++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[[xs++xs++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs) ++ ds ++ es
[[[xs++xs]++xs]++xs]++xs≡[[xs++xs]++xs]++xs++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla) :++ bla :++ bla)
xs++xs++xs++xs++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
xs++xs++xs++xs++xs≡[xs++xs++xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
xs++xs++[xs++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
xs++[xs++xs]++xs++xs≡[xs++xs++xs++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
xs++[xs++xs++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[xs++xs]++xs++xs++xs≡[xs++xs++xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[xs++xs++xs]++xs++xs≡[xs++xs++xs++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡[xs++xs++xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[xs++xs++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ (as ++ bs ++ cs ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡[xs++xs++xs++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ (bla :++ bla :++ bla :++ bla) :++ bla)
xs++xs++xs++xs++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
xs++xs++xs++xs++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
xs++xs++[xs++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
xs++[xs++xs]++xs++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
xs++[xs++xs++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[xs++xs]++xs++xs++xs≡[xs++[xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[xs++xs++xs]++xs++xs≡[xs++[xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[xs++xs++xs++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[xs++[xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ (as ++ (bs ++ cs) ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡[xs++[xs++xs]++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ (bla :++ (bla :++ bla) :++ bla) :++ bla)
xs++xs++xs++xs++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
xs++xs++xs++xs++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
xs++xs++[xs++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
xs++[xs++xs]++xs++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
xs++[xs++xs++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[xs++xs]++xs++xs++xs≡[[xs++xs]++xs++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[xs++xs++xs]++xs++xs≡[[xs++xs]++xs++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[xs++xs++xs++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ ((as ++ bs) ++ cs ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡[[xs++xs]++xs++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla) :++ bla :++ bla) :++ bla)
xs++xs++xs++xs++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
xs++xs++xs++xs++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
xs++xs++[xs++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
xs++[xs++xs]++xs++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
xs++[xs++xs++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[xs++xs]++xs++xs++xs≡[[xs++xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[xs++xs++xs]++xs++xs≡[[xs++xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[xs++xs++xs++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
[[[xs++xs]++xs]++xs]++xs≡[[xs++xs++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (((as ++ bs) ++ cs) ++ ds) ++ es ≡ ((as ++ bs ++ cs) ++ ds) ++ es
[[[xs++xs]++xs]++xs]++xs≡[[xs++xs++xs]++xs]++xs = list-solve
((((bla :++ bla) :++ bla) :++ bla) :++ bla :≡ ((bla :++ bla :++ bla) :++ bla) :++ bla)
xs++xs++xs++xs++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ cs ++ ds ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
xs++xs++xs++xs++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(bla :++ bla :++ bla :++ bla :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
xs++xs++[xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ bs ++ (cs ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
xs++xs++[xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(bla :++ bla :++ (bla :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
xs++[xs++xs]++xs++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs) ++ ds ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
xs++[xs++xs]++xs++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla) :++ bla :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
xs++[xs++xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ (bs ++ cs ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
xs++[xs++xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(bla :++ (bla :++ bla :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
xs++[[xs++xs]++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ as ++ ((bs ++ cs) ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
xs++[[xs++xs]++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(bla :++ ((bla :++ bla) :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[xs++xs]++xs++xs++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ cs ++ ds ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[xs++xs]++xs++xs++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
((bla :++ bla) :++ bla :++ bla :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[xs++xs]++[xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs) ++ (cs ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[xs++xs]++[xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
((bla :++ bla) :++ (bla :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[xs++xs++xs]++xs++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs) ++ ds ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[xs++xs++xs]++xs++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla) :++ bla :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs]++xs++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs) ++ ds ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[[xs++xs]++xs]++xs++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla) :++ bla :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[xs++xs++xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ bs ++ cs ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[xs++xs++xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
((bla :++ bla :++ bla :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[xs++[xs++xs]++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ (as ++ (bs ++ cs) ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[xs++[xs++xs]++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
((bla :++ (bla :++ bla) :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[[xs++xs]++xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs) ++ cs ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[[xs++xs]++xs++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(((bla :++ bla) :++ bla :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)
[[xs++xs++xs]++xs]++xs≡[[[xs++xs]++xs]++xs]++xs : ∀ {a} {A : Set a}
→ (as bs cs ds es : List A)
→ ((as ++ bs ++ cs) ++ ds) ++ es ≡ (((as ++ bs) ++ cs) ++ ds) ++ es
[[xs++xs++xs]++xs]++xs≡[[[xs++xs]++xs]++xs]++xs = list-solve
(((bla :++ bla :++ bla) :++ bla) :++ bla :≡ (((bla :++ bla) :++ bla) :++ bla) :++ bla)