fact: Definition mx_str_build n m (sn: mx n n -> mx n n) (sm: mx m m -> mx m m) (M: mx (n+m) (n+m)): mx (n+m) (n+m) := let a := sub00_mx M in let b := sub01_mx M in let c := sub10_mx M in let d := sub11_mx M in let e := sm d in let be:= b**e in let ec:= e**c in let f := sn (a ⊔ be**c) in let fbe := f**be in let ecf := ec**f in blk_mx f fbe ecf (e ⊔ ecf**be).
imports: comparisons kleene sums normalisation