aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-05-15 23:20:43 +0200
committerTom Smeding <tom@tomsmeding.com>2025-05-15 23:20:43 +0200
commit6cdbe556ddfb066a2fe205161b4ead793565c5f4 (patch)
tree446d3f12de84cea15a246e62bac3d08d3a1016b5
parent6f82510ddde60b76e7c81eae2da7d947312179e5 (diff)
Simplify lemRankApp
-rw-r--r--src/Data/Array/Mixed/Lemmas.hs14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/Data/Array/Mixed/Lemmas.hs b/src/Data/Array/Mixed/Lemmas.hs
index 7b3365b..7f41a06 100644
--- a/src/Data/Array/Mixed/Lemmas.hs
+++ b/src/Data/Array/Mixed/Lemmas.hs
@@ -56,20 +56,14 @@ lemRankApp :: forall sh1 sh2.
-> Rank (sh1 ++ sh2) :~: Rank sh1 + Rank sh2
lemRankApp ZKX _ = Refl
lemRankApp (_ :!% (ssh1 :: StaticShX sh1T)) ssh2
- = lem2 (Proxy @(Rank sh1T)) Proxy Proxy $
- lem (Proxy @(Rank sh2)) (Proxy @(Rank sh1T)) (Proxy @(Rank (sh1T ++ sh2))) $
- lemRankApp ssh1 ssh2
+ = lem (Proxy @(Rank sh1T)) Proxy Proxy $
+ sym (lemRankApp ssh1 ssh2)
where
lem :: proxy a -> proxy b -> proxy c
- -> c :~: b + a
- -> b + a :~: c
+ -> (a + b :~: c)
+ -> c + 1 :~: (a + 1 + b)
lem _ _ _ Refl = Refl
- lem2 :: proxy a -> proxy b -> proxy c
- -> (a + b :~: c)
- -> c + 1 :~: (a + 1 + b)
- lem2 _ _ _ Refl = Refl
-
lemRankAppComm :: StaticShX sh1 -> StaticShX sh2
-> Rank (sh1 ++ sh2) :~: Rank (sh2 ++ sh1)
lemRankAppComm _ _ = unsafeCoerceRefl -- TODO improve this