let S be non empty non void bool-correct 4,1 integer BoolSignature ; :: thesis: for X being non-empty ManySortedSet of the carrier of S
for T being b1,S -terms all_vars_including inheriting_operations free_in_itself vf-free integer VarMSAlgebra over S
for C being bool-correct 4,1 integer image of T
for I being integer SortSymbol of S
for t1, t2 being Element of T,I
for u being ManySortedFunction of FreeGen T, the Sorts of C holds (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))

let X be non-empty ManySortedSet of the carrier of S; :: thesis: for T being X,S -terms all_vars_including inheriting_operations free_in_itself vf-free integer VarMSAlgebra over S
for C being bool-correct 4,1 integer image of T
for I being integer SortSymbol of S
for t1, t2 being Element of T,I
for u being ManySortedFunction of FreeGen T, the Sorts of C holds (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))

let T be X,S -terms all_vars_including inheriting_operations free_in_itself vf-free integer VarMSAlgebra over S; :: thesis: for C being bool-correct 4,1 integer image of T
for I being integer SortSymbol of S
for t1, t2 being Element of T,I
for u being ManySortedFunction of FreeGen T, the Sorts of C holds (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))

let C be bool-correct 4,1 integer image of T; :: thesis: for I being integer SortSymbol of S
for t1, t2 being Element of T,I
for u being ManySortedFunction of FreeGen T, the Sorts of C holds (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))

let I be integer SortSymbol of S; :: thesis: for t1, t2 being Element of T,I
for u being ManySortedFunction of FreeGen T, the Sorts of C holds (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))

let t1, t2 be Element of T,I; :: thesis: for u being ManySortedFunction of FreeGen T, the Sorts of C holds (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))
let u be ManySortedFunction of FreeGen T, the Sorts of C; :: thesis: (t1 mod t2) value_at (C,u) = (t1 value_at (C,u)) mod (t2 value_at (C,u))
thus (t1 mod t2) value_at (C,u) = (t1 - ((t1 div t2) * t2)) value_at (C,u)
.= (t1 value_at (C,u)) - (((t1 div t2) * t2) value_at (C,u)) by Th56
.= (t1 value_at (C,u)) - (((t1 div t2) value_at (C,u)) * (t2 value_at (C,u))) by Th57
.= (t1 value_at (C,u)) mod (t2 value_at (C,u)) by Th58 ; :: thesis: verum