Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  block_matrices.prf

  Sprache: Lisp
 

(block_matrices (Block2M1_TCC1 0 (Block2M1_TCC1-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decnil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (Block_Matrix type-eq-decl nil block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (Block2M1_TCC2 0 (Block2M1_TCC2-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decnil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (Block_Matrix type-eq-decl nil block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (Block2M2_TCC1 0 (Block2M2_TCC1-1 nil 3537005172 ("" (subtype-tcc) nil nilnil nil)) (Block2M2_TCC2 0 (Block2M2_TCC2-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" realnil) (real nonempty-type-from-decl nil reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (Block_Matrix type-eq-decl nil block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (Block2M3_TCC1 0 (Block2M3_TCC1-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" realnil) (real nonempty-type-from-decl nil reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (Block_Matrix type-eq-decl nil block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (Block2M3_TCC2 0 (Block2M3_TCC2-1 nil 3537005172 ("" (subtype-tcc) nil nilnil nil)) (Block2M4_TCC1 0 (Block2M4_TCC1-1 nil 3537005172 ("" (subtype-tcc) nil nilnil nil)) (Block2M4_TCC2 0 (Block2M4_TCC2-1 nil 3537005172 ("" (subtype-tcc) nil nilnil nil)) (M2Block_TCC1 0 (M2Block_TCC1-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (posnat nonempty-type-eq-decl nil integers nil) (= const-decl "[T, T -> boolean]" equalities nil(below type-eq-decl nil naturalnumbers nil) (Matrix type-eq-decl nil matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Mat type-eq-decl nil matrices nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fieldnil)) nil)) (M2Block_TCC2 0 (M2Block_TCC2-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decnil integers nil) (posnat nonempty-type-eq-decl nil integers nil) (= const-decl "[T, T -> boolean]" equalities nil) (below type-eq-decl nil naturalnumbers nil) (Matrix type-eq-decl nil matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Mat type-eq-decl nil matricenil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real_gt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (int_minus_int_is_int application-judgement "int" integers nil)) nil)) (M2Block_TCC3 0 (M2Block_TCC3-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decnil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integernil) (posnat nonempty-type-eq-decl nil integers nil) (= const-decl "[T, T -> boolean]" equalities nil) (below type-eq-decl nil naturalnumbers nil) (Matrix type-eq-decl nil matrices nil(AND const-decl "[bool, bool -> bool]" booleans nil) (Mat type-eq-decl nil matrices nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real_gt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_propnil) (int_minus_int_is_int application-judgement "int" integers nil)) nil)) (M2Block_TCC4 0 (M2Block_TCC4-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (posnat nonempty-type-eq-decl nil integers nil) (= const-decl "[T, T -> boolean]" equalities nil) (below type-eq-decl nil naturalnumbers nil) (Matrix type-eq-decl nil matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Mat type-eq-decl nil matrices nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)) nil)) (M2Block_TCC5 0 (M2Block_TCC5-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (posnat nonempty-type-eq-decl nil integers nil) (= const-decl "[T, T -> boolean]" equalities nil) (below type-eq-decl nil naturalnumbers nil) (Matrix type-eq-decl nil matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Mat type-eq-decl nil matrices nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real_gt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgemen"posint" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (int_minus_int_is_int application-judgement "int" integers nil)) nil)) (M2Block_TCC6 0 (M2Block_TCC6-1 nil 3537005172 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (posnat nonempty-type-eq-decl nil integers nil) (= const-decl "[T, T -> boolean]" equalitienil) (below type-eq-decl nil naturalnumbers nil) (Matrix type-eq-decl nil matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Mat type-eq-decl nil matrices nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real_gt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (int_minus_int_is_int application-judgement "int" integers nil)) nil)) (BV1toBV2_TCC1 0 (BV1toBV2_TCC1-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil(>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (Block_Vector type-eq-decl nil block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (BV1toBV2_TCC2 0 (BV1toBV2_TCC2-1 nil 3537770523 ("" (subtype-tcc) nil nilnil nil)) (BV2toBV1_TCC1 0 (BV2toBV1_TCC1-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (Block_Vector2 type-eq-decl nil block_matrices nil) (int_minus_int_is_int application-judgement "int" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil)) nil)) (V2Block_TCC1 0 (V2Block_TCC1-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decnil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (> const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (posnat nonempty-type-eq-decl nil integers nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (below type-eq-decl nil naturalnumbers nil) (int_minus_int_is_int application-judgement "int" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_gt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil)) nil)) (times_TCC1 0 (times_TCC1-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (= const-decl "[T, T -> boolean]" equalities nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number_field_pred const-dec"[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fieldnil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (>= const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil)) nil)) (times_TCC2 0 (times_TCC2-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (= const-decl "[T, T -> boolean]" equalities nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (>= const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil)) nil)) (times_TCC3 0 (times_TCC3-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Bdiag_square? const-decl "bool" block_matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (>= const-decl "bool" reals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decnil number_fields nil) (square? const-decl "bool" matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (Block2M1 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC4 0 (times_TCC4-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Bdiag_square? const-decl "bool" block_matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (>= const-decl "bool" reals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (Block2M1 const-decl "Matrix" block_matrices nil) (square? const-decl "bool" matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (Block2M3 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC5 0 (times_TCC5-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((Block2M3 const-decl "Matrix" block_matrices nil) (Block2M1 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC6 0 (times_TCC6-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((Block2M1 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC7 0 (times_TCC7-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil(bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil(number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Bdiag_square? const-decl "bool" block_matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (>= const-decl "bool" reals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (Block2M1 const-decl "Matrix" block_matrices nil) (square? const-decl "bool" matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (Block2M2 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC8 0 (times_TCC8-1 nil 3537770523 ("" (subtype-tcc) nil nil((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil(number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Bdiag_square? const-decl "bool" block_matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (int nonempty-type-eq-decl nil integers nil(integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (>= const-decl "bool" reals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (Block2M1 const-decl "Matrix" block_matrices nil) (square? const-decl "bool" matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (Block2M4 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC9 0 (times_TCC9-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((Block2M4 const-decl "Matrix" block_matrices nil) (Block2M2 const-decl "Matrix" block_matrices nil)) nil)) (times_TCC10 0 (times_TCC10-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((Block2M2 const-decl "Matrix" block_matrices nil)) nil)) (plus_TCC1 0 (plus_TCC1-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (same_Bdim? const-decl "bool" block_matrices nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (< const-decl "bool" reals nil) (rational_pred const-dec"[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (plus_TCC2 0 (plus_TCC2-1 nil 3537770523 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (same_Bdim? const-decl "bool" block_matrices nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (< const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil)) nil)) (conv_transp_TCC1 0 (conv_transp_TCC1-1 nil 3537005192 ("" (subtype-tcc) nil nil) ((Block2M1 const-decl "Matrix" block_matrices nil) (transpose const-decl "Matrix" matrices nil)) nil)) (conv_transp_TCC2 0 (conv_transp_TCC2-1 nil 3537005192 ("" (subtype-tcc) nil nil) ((Block2M3 const-decl "Matrix" block_matrices nil(transpose const-decl "Matrix" matrices nil)) nil)) (conv_transp_TCC3 0 (conv_transp_TCC3-1 nil 3537005192 ("" (subtype-tcc) nil nil) ((Block2M2 const-decl "Matrix" block_matrices nil) (transpose const-decl "Matrix" matrices nil)) nil)) (conv_transp_TCC4 0 (conv_transp_TCC4-1 nil 3537005192 ("" (subtype-tcc) nil nil) ((Block2M4 const-decl "Matrix" block_matrices nil) (transpose const-decl "Matrix" matrices nil)) nil)) (conv_transp 0 (thm "finished" 3537005316 ("" (skosimp) (("" (apply-extensionality) (("1" (hide 2) (("1" (grind) nil nil)) nil) ("2" (hide 2) (("2" (grind) nil nil)) nil) ("3" (hide 2) (("3" (grind) nil nil)) nil) ("4" (hide 2) (("4" (grind) nil nil)) nil) ("5" (hide 2) (("5" (apply-extensionality) (("5" (hide 2) (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ((posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (Block2M2 const-decl "Matrix" block_matrices nil) (Block2M3 const-dec"Matrix" block_matrices nil) (Block2M1 const-decl "Matrix" block_matrices nil) (transpose const-decl "Matrix" matrices nil) (M2Block const-decl "Block_Matrix" block_matrices nil(Mat type-eq-decl nil matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Matrix type-eq-decl nil matrices nil) (> const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (bool nonempty-type-eq-decl nil booleans nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (Btranspose const-decl "Block_Matrix" block_matrices nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil)) shostak) (conv_transp-1 nil 3537005206 ("" (skosimp) (("" (apply-extensionality) (("1" (hide 2) (("1" (grind) nil nil)) nil) ("2" (hide 2) (("2" (grind) nil nil)) nil) ("3" (hide 2) (("3" (grind) nil nil)) nil) ("4" (hide 2) (("4" (grind) nil nil)) nil) ("5" (hide 2) (("5" (postpone) nil nil)) nil)) nil)) nil) ((Matrix type-eq-decl nil matrices nil) (Mat type-eq-decl nil matrices nil) (transpose const-decl "Matrix" matrices nil)) shostak)) (block_square 0 (block_square-1 nil 3537770624 ("" (skosimp) (("" (expand "Bdiag_square?") (("" (expand "Bsquare?") (("" (flatten) (("" (expand "Block2M") (("" (expand "square?") (("" (expand "Block2M1") (("" (expand "Block2M4") (("" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((Bdiag_square? const-decl "bool" block_matrices nil) (square? const-decl "bool" matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (posint_plus_nnint_is_posint application-judgemen"posint" integers nil) (Block2M1 const-decl "Matrix" block_matrices nil) (Block2M const-decl "Matrix" block_matrices nil) (Bsquare? const-decl "bool" block_matrices nil)) shostak)) (block_symmetric 0 (thm "finished" 3537781919 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (expand "Block2M") (("" (expand "symmetric?") (("" (flatten) (("" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (typepred "x!2") (("1" (typepred "x!1") (("1" (case "x!2<M!1`rows1") (("1" (case "x!1<M!1`cols1") (("1" (expand "Block2M1") (("1" (flatten) (("1" (decompose-equality -8) (("1" (inst -1 "(x!2, x!1)") (("1" (assertnil nil) ("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -5 1) (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (expand "Block2M1") (("3" (expand "square?") (("3" (replace -6 1) (("3" (propax) nil nil)) nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -6 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M1") (("3" (propax) nil nil)) nil)) nil("4" (expand "Block2M1") (("4" (hide -14) (("4" (expand "square?") (("4" (replace -9 -1) (("4" (assertnil nil)) nil)) nil)) nil)) nil) ("5" (expand "square?") (("5" (expand "Block2M1") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (expand "Block2M2") (("1" (expand "Block2M3") (("1" (flatten) (("1" (decompose-equality -11) (("1" (inst -1 "(x!2,x!1-M!1`cols1)") (("1" (assertnil nil) ("2" (assert) (("2" (expand "Block2M2") (("2" (hide -6 -7 -8 2) (("2" (hide -5) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (expand "Block2M2") (("3" (hide -5 -6 -7 -8 2) (("3" (grind) nil nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M2") (("2" (replace -10 -1) (("2" (propax) nil nil)nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M2") (("3" (replace -11 -1) (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (expand "Block2M2") (("4" (replace -13 -1) (("4" (assertnil nil)) nil)) nil) ("5" (expand "Block2M2") (("5" (hide -9 -10 -11 -12 -15 2) (("5" (grindnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil) ("2" (case "x!2>=M!1`rows1") (("1" (hide 1) (("1" (case "x!1<M!1`cols1") (("1" (expand "Block2M2") (("1" (expand "Block2M3") (("1" (flatten) (("1" (decompose-equality -11) (("1" (inst -1 "(x!1,x!2-M!1`rows1)") (("1" (assertnil nil) ("2" (split) (("1" (assertnil nil) ("2" (expand "Block2M2") (("2" (assertnil nil)) nil)) nil) ("3" (expand "Block2M2") (("3" (propax) nil nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M2") (("2" (replace -10 -1) (("2" (propaxnil nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M2") (("3" (expand "square?") (("3" (replace -11 -1) (("3" (propax) nil nil)) nil)) nil)) nil)) nil) ("4" (expand "Block2M2") (("4" (assertnil nil)) nil) ("5" (expand "Block2M2") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (hide -9) (("1" (expand "Block2M4") (("1" (flatten) (("1" (decompose-equality -10) (("1" (inst -1 "(x!1-M!1`cols1,x!2-M!1`rows1)") (("1" (assert) (("1" (expand "square?" -6) (("1" (expand "Block2M1") (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (expand "Block2M1") (("2" (flatten) (("2" (hide 2) (("2" (split) (("1" (assertnil nil) ("2" (expand "Block2M4") (("2" (assertnil nil)) nil)) nil)nil)) nil)) nil) ("3" (split) (("1" (assertnil nil) ("2" (expand "Block2M4") (("2" (assertnil nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M4") (("2" (assertnil nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M4") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M4") (("4" (assertnil nil)) nil) ("5" (expand "Block2M4") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (case "M!1`rows1 + M!1`rows2= M!1`cols1 + M!1`cols2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (hide 2) (("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (case " M!1`cols1 + M!1`cols2= M!1`rows1 + M!1`rows2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((Bsymmetric? const-decl "bool" block_matrices nil) (symmetric? const-decl "bool" matrices nil) (Block2M1 const-decl "Matrix" block_matrices nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (Block2M4 const-decl "Matrix" block_matrices nil) (square? const-decl "bool" matrices nil) (x!2 skolem-const-decl "below(M!1`rows1 + M!1`rows2)" block_matrices nil) (x!1 skolem-const-decl "below(M!1`cols1 + M!1`cols2)" block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (Matrix type-eq-decl nil matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (IMPLIES const-decl "[bool, bool -> bool]" booleans nil) (Block2M3 const-decl "Matrix" block_matrices nil) (nnint_plus_posint_is_posint application-judgement "posint" integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (int_plus_int_is_int application-judgement "int" integers nil) (- const-decl "[numfield, numfield -> numfield]" number_fields nil) (int_minus_int_is_int application-judgement "int" integers nil) (Block2M2 const-decl "Matrix" block_matrices nil) (NOT const-decl "[bool -> bool]" booleans nil) (AND const-decl "[bool, bool -> bool]" booleans nil(IFF const-decl "[bool, bool -> bool]" booleans nil) (M!1 skolem-const-decl "Block_Matrix" block_matrices nil) (Block_Matrix type-eq-decl nil block_matrices nil) (below type-eq-decl nil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (>= const-decl "bool" reals nil) (bool nonempty-type-eq-decl nil booleans nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (real nonempty-type-from-decl nil reals nil) (real_pred const-dec"[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (boolean nonempty-type-decl nil booleans nil) (number nonempty-type-decl nil numbers nil) (transpose const-decl "Matrix" matrices nil) (Block2M const-decl "Matrix" block_matrices nil)) shostak) (tresdecuatro "tresdecuatro" 3537781693 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (expand "Block2M") (("" (expand "symmetric?") (("" (flatten) (("" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (typepred "x!2") (("1" (typepred "x!1") (("1" (case "x!2<M!1`rows1") (("1" (case "x!1<M!1`cols1") (("1" (expand "Block2M1") (("1" (flatten) (("1" (decompose-equality -8) (("1" (inst -1 "(x!2, x!1)") (("1" (assertnil nil) ("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -5 1) (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (expand "Block2M1") (("3" (expand "square?") (("3" (replace -6 1) (("3" (propax) nil nil)) nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -6 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M1") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M1") (("4" (hide -14) (("4" (expand "square?") (("4" (replace -9 -1) (("4" (assertnil nil)) nil)) nil)) nil)) nil) ("5" (expand "square?") (("5" (expand "Block2M1") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (expand "Block2M2") (("1" (expand "Block2M3") (("1" (flatten) (("1" (decompose-equality -11) (("1" (inst -1 "(x!2,x!1-M!1`cols1)") (("1" (assertnil nil) ("2" (assert) (("2" (expand "Block2M2") (("2" (hide -6 -7 -8 2) (("2" (hide -5) (("2" (grind) nil nil)) nil)) nil)) nil)) nil("3" (expand "Block2M2") (("3" (hide -5 -6 -7 -8 2) (("3" (grind) nil nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M2") (("2" (replace -10 -1) (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M2") (("3" (replace -11 -1) (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (expand "Block2M2") (("4" (replace -13 -1) (("4" (assertnil nil)) nil)) nil) ("5" (expand "Block2M2") (("5" (hide -9 -10 -11 -12 -15 2) (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil) ("2" (case "x!2>=M!1`rows1") (("1" (hide 1) (("1" (case "x!1<M!1`cols1") (("1" (postpone) nil nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (hide -9) (("1" (expand "Block2M4") (("1" (flatten) (("1" (decompose-equality -10) (("1" (inst -1 "(x!1-M!1`cols1,x!2-M!1`rows1)") (("1" (assert) (("1" (expand "square?" -6) (("1" (expand "Block2M1") (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (expand "Block2M1") (("2" (flatten) (("2" (hide 2) (("2" (split) (("1" (assertnil nil) ("2" (expand "Block2M4") (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("3" (split) (("1" (assertnil nil) ("2" (expand "Block2M4") (("2" (assertnil nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M4") (("2" (assertnil nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M4") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M4") (("4" (assertnil nil)) nil) ("5" (expand "Block2M4") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil)nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (case "M!1`rows1 + M!1`rows2= M!1`cols1 + M!1`cols2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (hide 2) (("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (case " M!1`cols1 + M!1`cols2= M!1`rows1 + M!1`rows2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((transpose const-decl "Matrix" matrices nil) (Matrix type-eq-decl nil matrices nil) (square? const-decl "bool" matrices nil) (symmetric? const-decl "bool" matrices nil)) shostak) (dosdecuatro "dosdecuatro" 3537781251 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (expand "Block2M") (("" (expand "symmetric?") (("" (flatten) (("" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (typepred "x!2") (("1" (typepred "x!1") (("1" (case "x!2<M!1`rows1") (("1" (case "x!1<M!1`cols1") (("1" (expand "Block2M1") (("1" (flatten) (("1" (decompose-equality -8) (("1" (inst -1 "(x!2, x!1)") (("1" (assertnil nil) ("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -5 1) (("2" (propax) nil nil)) nil)) nil)nil) ("3" (expand "Block2M1") (("3" (expand "square?") (("3" (replace -6 1) (("3" (propax) nil nil)) nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -6 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M1") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M1") (("4" (hide -14) (("4" (expand "square?") (("4" (replace -9 -1) (("4" (assertnil nil)) nil)nil)) nil)) nil) ("5" (expand "square?") (("5" (expand "Block2M1") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (expand "Block2M2") (("1" (expand "Block2M3") (("1" (flatten) (("1" (decompose-equality -11) (("1" (inst -1 "(x!2,x!1-M!1`cols1)") (("1" (assertnil nil) ("2" (assert) (("2" (expand "Block2M2") (("2" (hide -6 -7 -8 2) (("2" (hide -5) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (expand "Block2M2") (("3" (hide -5 -6 -7 -8 2) (("3" (grind) nil nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M2") (("2" (replace -10 -1) (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M2") (("3" (replace -11 -1) (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (expand "Block2M2") (("4" (replace -13 -1) (("4" (assertnil nil)) nil)) nil) ("5" (expand "Block2M2") (("5" (hide -9 -10 -11 -12 -15 2) (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assertnil nil)) nil)) nil) ("2" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (case "M!1`rows1 + M!1`rows2= M!1`cols1 + M!1`cols2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (hide 2) (("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (case " M!1`cols1 + M!1`cols2= M!1`rows1 + M!1`rows2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nilnil shostak) (unadecuatro "unadecuatro" 3537780787 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (expand "Block2M") (("" (expand "symmetric?") (("" (flatten) (("" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (typepred "x!2") (("1" (typepred "x!1") (("1" (case "x!2<M!1`rows1") (("1" (case "x!1<M!1`cols1") (("1" (expand "Block2M1") (("1" (flatten) (("1" (decompose-equality -8) (("1" (inst -1 "(x!2, x!1)") (("1" (assertnil nil) ("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -5 1) (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (expand "Block2M1") (("3" (expand "square?") (("3" (replace -6 1) (("3" (propax) nil nil)) nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M1") (("2" (expand "square?") (("2" (replace -6 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M1") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M1") (("4" (hide -14) (("4" (expand "square?") (("4" (replace -9 -1) (("4" (assertnil nil)) nil)) nil)) nil)) nil) ("5" (expand "square?") (("5" (expand "Block2M1") (("5" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil)) nil) ("2" (postpone) nil nil)nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (case "M!1`rows1 + M!1`rows2= M!1`cols1 + M!1`cols2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (hide 2) (("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (case " M!1`cols1 + M!1`cols2= M!1`rows1 + M!1`rows2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nilnil shostak) (empezando "empezando" 3537773080 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (expand "Block2M") (("" (expand "symmetric?") (("" (flatten) (("" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1" -1) (("1" (expand "Block2M4" -3) (("1" (assertnil nil)) nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (typepred "x!2") (("1" (case "x!2<M!1`rows1") (("1" (case "x!1<M!1`cols1") (("1" (postpone) nil nil) ("2" (postpone) nil nil)) nil) ("2" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (case "M!1`rows1 + M!1`rows2= M!1`cols1 + M!1`cols2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (hide 2) (("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (case " M!1`cols1 + M!1`cols2= M!1`rows1 + M!1`rows2") (("1" (replace -1 1) (("1" (assertnil nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1" -1) (("2" (expand "Block2M4" -3) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nilnil shostak) (block_symmetric-1 nil 3537770774 ("" (skosimp) (("" (split) (("1" (flatten) (("1" (expand "Bsymmetric?") (("1" (expand "symmetric?") (("1" (flatten) (("1" (split) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (expand "Block2M" -1) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil)) nil)) nilnil shostak)) (block_symmetric2 0 (thm "finished" 3537776763 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (split) (("1" (expand "symmetric?") (("1" (split) (("1" (propax) nil nil) ("2" (flatten) (("2" (expand "Block2M1" 1) (("2" (expand "Block2M" -2) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (swap-rel -3) nil nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1") (("2" (propaxnil nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (flatten) (("1" (decompose-equality -4) (("1" (inst -1 "(x!2,x!1)") (("1" (swap-rel -1) nil nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (split) (("1" (skosimp) (("1" (expand "square?" -5) (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "square?" -5) (("2" (expand "Block2M1") (("2" (replace -5 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (expand "symmetric?") (("2" (flatten) (("2" (split) (("1" (propax) nil nil) ("2" (expand "Block2M4" 1) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?" -4) (("1" (expand "Block2M4") (("1" (swap-rel -4) nil nil)) nil)) nil) ("2" (expand "square?" -4) (("2" (expand "Block2M4") (("2" (propax) nil nil)) nil)) nil) ("3" (apply-extensionality 1) (("1" (hide 2) (("1" (expand "Block2M") (("1" (flatten) (("1" (decompose-equality -4) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (inst -1 "(M!1`cols1 + x!2, M!1`cols1 + x!1)") (("1" (swap-rel -1) nil nil) ("2" (expand "Block2M") (("2" (typepred "x!1") (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide 2) (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (typepred "x!3`1") (("2" (expand "Block2M") (("2" (replace -3 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M") (("4" (replace -6 -1) (("4" (propax) nil nil)) nil)) nil) ("5" (expand "Block2M") (("5" (propax) nil nil)) nil)) nil)nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (expand "square?") (("1" (expand "Block2M4") (("1" (replace -4 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "square?") (("2" (expand "Block2M4") (("2" (replace -4 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (expand "symmetric?") (("3" (flatten) (("3" (expand "transpose") (("3" (expand "Block2M3") (("3" (split) (("1" (expand "Block2M2") (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (swap-rel -3) nil nil)) nil)) nil)) nil) ("2" (expand "Block2M2") (("2" (expand "square?") (("2" (expand "Block2M4") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (expand "Block2M2") (("1" (expand "Block2M") (("1" (flatten) (("1" (decompose-equality -4) (("1" (expand "square?" -5) (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (inst -1 "(M!1`cols1 + x!2, x!1)") (("1" (swap-rel -1) nil nil) ("2" (typepred "x!1") (("2" (expand "Block2M") (("2" (expand "Block2M2") (("2" (replace -5 1) (("2" (assertnil nil)) nil)nil)) nil)) nil) ("3" (expand "Block2M") (("3" (typepred "x!2") (("3" (expand "Block2M2") (("3" (expand "square?") (("3" (expand "Block2M4") (("3" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (typepred "x!3`1") (("2" (expand "Block2M") (("2" (replace -3 -1) (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M") (("4" (replace -6 -1) (("4" (propax) nil nil)) nil)) nil) ("5" (expand "Block2M") (("5" (propax) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (expand "square?") (("1" (expand "Block2M2") (("1" (expand "Block2M1") (("1" (replace -3 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M2") (("2" (expand "square?") (("2" (expand "Block2M4") (("2" (replace -4 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (typepred "i!1") (("3" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((Bsymmetric? const-decl "bool" block_matrices nil) (Block2M2 const-decl "Matrix" block_matrices nil) (x!2 skolem-const-decl "below(Block2M2(M!1)`rows)" block_matrices nil) (x!1 skolem-const-decl "below(Block2M2(M!1)`cols)" block_matrices nil) (Block2M3 const-decl "Matrix" block_matrices nil) (nnint_plus_posint_is_posint application-judgement "posint" integers nil) (IMPLIES const-decl "[bool, bool -> bool]" booleans nil) (Matrix type-eq-decl nil matrices nil) (NOT const-decl "[bool -> bool]" booleans nil) (x!2 skolem-const-decl "below(M!1`rows2)" block_matrices nil) (x!1 skolem-const-decl "below(M!1`cols2)" block_matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (symmetric? const-decl "bool" matrices nil) (Block2M const-decl "Matrix" block_matrices nil) (boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (IFF const-decl "[bool, bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (= const-decl "[T, T -> boolean]" equalities nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (square? const-decl "bool" matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (M!1 skolem-const-decl "Block_Matrix" block_matricenil) (AND const-decl "[bool, bool -> bool]" booleans nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (>= const-decl "bool" reals nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil(rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (transpose const-decl "Matrix" matrices nil) (Block2M1 const-decl "Matrix" block_matrices nil)) shostak) (ultima "ultima" 3537776266 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (split) (("1" (expand "symmetric?") (("1" (split) (("1" (propax) nil nil) ("2" (flatten) (("2" (expand "Block2M1" 1) (("2" (expand "Block2M" -2) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (swap-rel -3) nil nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1") (("2" (propax) nil nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (flatten) (("1" (decompose-equality -4) (("1" (inst -1 "(x!2,x!1)") (("1" (swap-rel -1) nil nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (split) (("1" (skosimp) (("1" (expand "square?" -5) (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "square?" -5) (("2" (expand "Block2M1") (("2" (replace -5 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (expand "symmetric?") (("2" (flatten) (("2" (split) (("1" (propax) nil nil) ("2" (expand "Block2M4" 1) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?" -4) (("1" (expand "Block2M4") (("1" (swap-rel -4) nil nil)) nil)) nil) ("2" (expand "square?" -4) (("2" (expand "Block2M4") (("2" (propax) nil nil)) nil)) nil) ("3" (apply-extensionality 1) (("1" (hide 2) (("1" (expand "Block2M") (("1" (flatten) (("1" (decompose-equality -4) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (inst -1 "(M!1`cols1 + x!2, M!1`cols1 + x!1)") (("1" (swap-rel -1) nil nil) ("2" (expand "Block2M") (("2" (typepred "x!1") (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide 2) (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (typepred "x!3`1") (("2" (expand "Block2M") (("2" (replace -3 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M"(("4" (replace -6 -1) (("4" (propax) nil nil)) nil)) nil) ("5" (expand "Block2M") (("5" (propaxnil nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (expand "square?") (("1" (expand "Block2M4") (("1" (replace -4 1) (("1" (assertnil nil)) nil)) nil)nil)) nil) ("2" (skosimp) (("2" (expand "square?") (("2" (expand "Block2M4") (("2" (replace -4 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (postpone) nil nil)) nil)) nil)) nil) ((transpose const-decl "Matrix" matrices nil) (square? const-decl "bool" matrices nil) (symmetric? const-decl "bool" matrices nil) (Matrix type-eq-decl nil matrices nil)) shostak) (problemilla "problemilla" 3537776068 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (split) (("1" (expand "symmetric?") (("1" (split) (("1" (propax) nil nil) ("2" (flatten) (("2" (expand "Block2M1" 1) (("2" (expand "Block2M" -2) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (swap-rel -3) nil nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1") (("2" (propax) nil nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (flatten) (("1" (decompose-equality -4) (("1" (inst -1 "(x!2,x!1)") (("1" (swap-rel -1) nil nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (split) (("1" (skosimp) (("1" (expand "square?" -5) (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "square?" -5) (("2" (expand "Block2M1") (("2" (replace -5 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (expand "symmetric?") (("2" (flatten) (("2" (split) (("1" (propax) nil nil) ("2" (expand "Block2M4" 1) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?" -4) (("1" (expand "Block2M4") (("1" (swap-rel -4) nil nil)) nil)) nil) ("2" (expand "square?" -4) (("2" (expand "Block2M4") (("2" (propax) nil nil)) nil)) nil) ("3" (apply-extensionality 1) (("1" (hide 2) (("1" (expand "Block2M") (("1" (flatten) (("1" (decompose-equality -4) (("1" (postpone) nil nil) ("2" (hide 2) (("2" (typepred "x!3`1") (("2" (expand "Block2M") (("2" (replace -3 -1) (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (typepred "x!3`2") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil) ("4" (expand "Block2M") (("4" (replace -6 -1) (("4" (propax) nil nil)) nil)) nil) ("5" (expand "Block2M") (("5" (propax) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (split) (("1" (skosimp) (("1" (expand "square?") (("1" (expand "Block2M4") (("1" (replace -4 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "square?") (("2" (expand "Block2M4") (("2" (replace -4 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (postpone) nil nil)) nil)) nil)) nilnil shostak) (tercio "tercio" 3537775332 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (split) (("1" (expand "symmetric?") (("1" (split) (("1" (propax) nil nil) ("2" (flatten) (("2" (expand "Block2M1" 1) (("2" (expand "Block2M" -2) (("2" (expand "transpose") (("2" (split) (("1" (expand "square?") (("1" (expand "Block2M1") (("1" (swap-rel -3) nil nil)) nil)) nil) ("2" (expand "square?") (("2" (expand "Block2M1") (("2" (propax) nil nil)) nil)) nil) ("3" (apply-extensionality) (("1" (hide 2) (("1" (flatten) (("1" (decompose-equality -4) (("1" (inst -1 "(x!2,x!1)") (("1" (swap-rel -1) nil nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (split) (("1" (skosimp) (("1" (expand "square?" -5) (("1" (expand "Block2M1") (("1" (replace -5 1) (("1" (assertnil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "square?" -5) (("2" (expand "Block2M1") (("2" (replace -5 1) (("2" (assertnil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil)) nil)) nilnil shostak) (block_symmetric2-1 nil 3537773180 ("" (skosimp) (("" (expand "Bsymmetric?") (("" (expand "square?") (("" (expand "Block2M1" -2) (("" (expand "Block2M4" -3) (("" (split) (("1" (expand "symmetric?"(("1" (flatten) (("1" (split) (("1" (postpone) nil nil) ("2" (postpone) nil nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil)) nilnil shostak)) (blockV_equal_TCC1 0 (blockV_equal_TCC1-1 nil 3539490908 ("" (subtype-tcc) nil nil((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (number nonempty-type-decl nil numbers nil) (= const-decl "[T, T -> boolean]" equalities nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (>= const-decl "bool" reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil)) nil)) (blockV_equal 0 (blockV_equal-1 nil 3539490933 ("" (skosimp) (("" (expand "Block2V") (("" (split) (("1" (flatten) (("1" (apply-extensionality) (("1" (hide 2) (("1" (skosimp) (("1" (split) (("1" (flatten) (("1" (grind) nil nil)) nil) ("2" (flatten) (("2" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (flatten) (("2" (apply-extensionality) (("2" (hide 2) (("2" (apply-extensionality) (("2" (hide 2) (("2" (decompose-equality -1) (("2" (inst -1 "x!1"nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((Block2V const-decl "Vector[V`comp1 + V`comp2]" block_matrices nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (W!1 skolem-const-decl "Block_Vect(V!1`comp1, V!1`comp2)" block_matrices nil) (Block_Vect type-eq-decl nil block_matricenil) (V!1 skolem-const-decl "Block_Vector" block_matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (IFF const-decl "[bool, bool -> bool]" booleans nil) (below type-eq-decl nil nat_types nil) (Block_Vector type-eq-decl nil block_matrices nil) (below type-eq-decl nil naturalnumbers nil) (posnat nonempty-type-eq-decl nil integers nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (>= const-decl "bool" reals nil) (bool nonempty-type-eq-decl nil booleans nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (real nonempty-type-from-decl nil reals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (boolean nonempty-type-decl nil booleans nil) (number nonempty-type-decl nil numbers nil)) shostak)) (VtoBlocktoV1_TCC1 0 (VtoBlocktoV1_TCC1-nil 3539422108 ("" (subtype-tcc) nil nil) ((V2Block const-decl "Block_Vector" block_matrices nil)) nil)) (VtoBlocktoV1 0 (VtoBlocktoV1-1 nil 3539422139 ("" (skosimp) (("" (expand "V2Block") (("" (expand "Block2V1") (("" (apply-extensionality) nil nil)) nil)) nil)) nil) ((V2Block const-decl "Block_Vector" block_matrices nil) (Index type-eq-decl nil vectors "vectors/") (Vector type-eq-decl nil vectors "vectors/") (number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decnil reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (bool nonempty-type-eq-decl nil booleans nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (< const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (> const-decl "bool" reals nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil nat_types nil) (Block2V1 const-decl "Vector[V`comp1]" block_matrices nil)) shostak)) (VtoBlocktoV2_TCC1 0 (VtoBlocktoV2_TCC1-1 nil 3541266660 ("" (subtype-tcc) nil nil) ((V2Block const-decl "Block_Vector" block_matrices nil)) nil)) (VtoBlocktoV2 0 (VtoBlocktoV2-1 nil 3541266691 ("" (skosimp) (("" (expand "V2Block") (("" (expand "Block2V2") (("" (apply-extensionality) nil nil)) nil)) nil)) nil) ((V2Block const-decl "Block_Vector" block_matrices nil(Index type-eq-decl nil vectors "vectors/") (Vector type-eq-decl nil vectors "vectors/") (number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil(bool nonempty-type-eq-decl nil booleans nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (< const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (> const-decl "bool" reals nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil nat_types nil) (Block2V2 const-decl "Vector[V`comp2]" block_matrices nil)) shostak)) (VtoBlocktoV_TCC1 0 (VtoBlocktoV_TCC1-1 nil 3539935535 ("" (subtype-tcc) nil nil) ((V2Block const-decl "Block_Vector" block_matrices nil)) nil)) (VtoBlocktoV 0 (VtoBlocktoV-1 nil 3539935571 ("" (skosimp) (("" (grind) nil nil)) nil) ((real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (Block2V const-decl "Vector[V`comp1 + V`comp2]" block_matrices nil) (V2Block const-decl "Block_Vector" block_matrices nil)) shostak)) (Vec_block_Vec_TCC1 0 (Vec_block_Vec_TCC1-1 nil 3543646554 ("" (subtype-tcc) nil nil) ((Vec2Block const-decl "Block_Vector" block_matrices nil)) nil)) (Vec_block_Vec 0 (Finalizada "Ya esta" 3543661145 ("" (skeep) (("" (apply-extensionality) (("" (hide 2) (("" (expand "Vec2Block") (("" (expand "Block2V") (("" (propax) nil nil)) nil)) nil)) nil)) nil)) nil) ((number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (bool nonempty-type-eq-decl nil booleans nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (< const-decl "bool" reals nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (nonneg_int nonempty-type-eq-decl nil integernil) (> const-decl "bool" reals nil) (posnat nonempty-type-eq-decl nil integers nil) (Index type-eq-decl nil vectors "vectors/") (Vector type-eq-decl nil vectors "vectors/") (below type-eq-decl nil naturalnumbers nil) (Block_Vector type-eq-decl nil block_matrices nil) (Vec2Block const-decl "Block_Vector" block_matrices nil) (Block2V const-decl "Vector[V`comp1 + V`comp2]" block_matrices nil)) shostak) (Vec_block_Vec-1 nil 3543646554 ("" (skeep) (("" (expand "Block2V") (("" (expand "Vec2Block") (("" (grind) (("" (apply-extensionality) (("" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ((Index type-eq-decl nil vectors "vectors/") (Vector type-eq-decl nil vectors "vectors/")) shostak)) (block_Vec_block 0 (block_Vec_block-1 nil 3543664050 ("" (skeep) (("" (apply-extensionality) (("1" (hide 2) (("1" (expand "Block2V") (("1" (expand "Vec2Block") (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (grind) nil nil)) nil) ("3" (hide 2) (("3" (expand "Block2V") (("3" (expand "Vec2Block") (("3" (grind) (("3" (apply-extensionality) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ((posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil(real nonempty-type-from-decl nil reals nil) (Block_Vector type-eq-decl nil block_matricenil) (Block2V const-decl "Vector[V`comp1 + V`comp2]" block_matrices nil) (Vec2Block const-decl "Block_Vector" block_matrices nil) (Vector type-eq-decl nil vectors "vectors/") (Index type-eq-decl nil vectors "vectors/") (< const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (> const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (>= const-decl "bool" reals nil) (bool nonempty-type-eq-decl nil booleannil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil)) shostak)) (block_product_TCC1 0 (block_product_TCC1-1 nil 3539490908 ("" (subtype-tcc) nil nil) ((boolean nonempty-type-decl nil booleans nil) (bool nonempty-type-eq-decl nil booleans nil) (NOT const-decl "[bool -> bool]" booleans nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (number nonempty-type-decl nil numbers nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (real nonempty-type-from-decl nil reals nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Bdiag_square? const-decl "bool" block_matrices nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vector type-eq-decl nil block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (Block_Vect type-eq-decl nil block_matrices nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (int nonempty-type-eq-decl nil integers nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (rational nonempty-type-from-decl nil rationals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (>= const-decl "bool" reals nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (number_field nonempty-type-from-decl nil number_fields nil) (Block2M1 const-decl "Matrix" block_matricenil) (square? const-decl "bool" matrices nil) (Block2M4 const-decl "Matrix" block_matricenil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (Block2M const-decl "Matrix" block_matrices nil)) nil)) (block_product_TCC2 0 (block_product_TCC2-nil 3539490908 ("" (subtype-tcc) nil nil) ((Block2M const-decl "Matrix" block_matrices nil) (Block2M1 const-decl "Matrix" block_matrices nil) (Block2M3 const-decl "Matrix" block_matrices nil) (Block2M2 const-decl "Matrix" block_matrices nil) (Block2M4 const-decl "Matrix" block_matrices nil) (* const-decl "Block_Vector2" block_matrices nil) (Block2V1 const-decl "Vector[V`comp1]" block_matrices nil) (* const-decl "Vector[M`rows]" matrices nil) (Block2V2 const-decl "Vector[V`comp2]" block_matrices nil) (+ const-decl "real" vectors "vectors/") (BV2toBV1 const-decl "Block_Vector" block_matrices nil) (real_times_real_is_real application-judgement "real" reals nil) (int_minus_int_is_int application-judgement "int" integers nil)) nil)) (block_product 0 (thm "finished" 3541849791 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?"(("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M4(M!1)`cols" "M!1`cols2" "LAMBDA (k: below(Block2M4(M!1)`cols)):
              Block2M4(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V2(V!1)(k)" "LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               V!1`vector(i + M!1`cols1)") (("1" (expand "Block2M4" -1 1) (("1" (case "  (FORALL (i_1: below[Block2M4(M!1)`cols]):
         Block2M4(M!1)`matrix((x!1 - M!1`rows1), i_1) * Block2V2(V!1)(i_1)
          =
          Block2M(M!1)`matrix(x!1, i_1 + M!1`cols1) *
           V!1`vector(i_1 + M!1`cols1))") (("1" (replace -1 -2) (("1" (hide -1) (("1" (expand "Block2M4" -1 1) (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (hide -1) (("2" (hide 2) (("2" (skosimp) (("2" (hide -3) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -1 2) (("3" (skosimp) (("3(typepred "i!1") (("3" (hide -4) (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -1 2) (("4" (skosimp) (("4" (typepred "i!1") (("4" (hide -4) (("4" (grind) nil nil)) nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil) ("6" (hide -1 2) (("6" (skosimp) (("6" (hide -3) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil)) nil) ("7" (hide -1 2) (("7" (skosimp) (("7" (typepred "x!1") (("7" (hide -4) (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "i!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -1 2) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (hide -3 2) (("3" (grind) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (typepred "x!1") (("5" (hide -4 2) (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (hide -1 -4 2) (("4" (typepred "i!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (hide -1 -4 2) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (hide -1 -4 2) (("3" (skosimp) (("3" (typepred "i!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -1 -4 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (assert) nil nil)) nil)) nil) ("6" (hide -1 -4 2) (("6" (skosimp) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (hide -1 -4 2) (("7" (typepred "x!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2(hide -3 2) (("2" (skosimp) (("2" (typepred "x!2") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2(hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M2(M!1)`cols" "M!1`cols1
" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k)") (("1" (expand "Block2M2" -1 1) (("1" (expand "Block2M2" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), i) *
               Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * V!1`vector(i)") (("1" (assert) (("1" (hide -3 2) (("1" (skosimp) (("1" (grind) nil nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M2") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "k!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "k!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "k!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (assert) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M2") (("6" (assert) nil nil)) nil)) nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (typepred "x!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "k!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2(assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ((number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (bool nonempty-type-eq-decl nil booleans nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (< const-decl "bool" reals nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (Block_Vector2 type-eq-decl nil block_matrices nil) (Block_Vector type-eq-decl nil block_matrices nil) (BV2toBV1 const-decl "Block_Vector" block_matrices nil) (Block_Matrix type-eq-decl nil block_matrices nil) (Bdiag_square? const-decl "bool" block_matrices nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vect type-eq-decl nil block_matrices nil) (* const-decl "Block_Vector2" block_matrices nil) (Index type-eq-decl nil vectors "vectors/") (Block2M const-decl "Matrix" block_matrices nil) (* const-decl "Vector[M`rows]" matrices nil) (Matrix type-eq-decl nil matrices nil) (Block2V const-decl "Vector[V`comp1 + V`comp2]" block_matrices nil) (Vector type-eq-decl nil vectors "vectors/") (VtoBlocktoV formula-decl nil block_matrices nil) (Block2M1 const-decl "Matrix" block_matrices nil) (real_times_real_is_real application-judgement "real" reals nil) (int_minus_int_is_int application-judgement "int" integers nil) (M!1 skolem-const-decl "(Bdiag_square?)" block_matrices nil) (OR const-decl "[bool, bool -> bool]" booleans nil) (<= const-decl "bool" reals nil) (- const-decl "[numfield, numfield -> numfield]" number_fields nil) (V!1 skolem-const-decl "Block_Vect(M!1`cols1, M!1`cols2)" block_matrices nil) (integer nonempty-type-from-decl nil integers nil) (IMPLIES const-decl "[bool, bool -> bool]" booleans nil) (Block2M3 const-decl "Matrix" block_matrices nil) (IFF const-decl "[bool, bool -> bool]" booleans nil) (Block2V2 const-decl "Vector[V`comp2]" block_matrices nil) (Block2V1 const-decl "Vector[V`comp1]" block_matrices nil) (* const-decl "[numfield, numfield -> numfield]" number_fields nil) (sigma def-decl "realsigma "reals/") (T_high type-eq-decl nil sigma "reals/") (T_low type-eq-decl nil sigma "reals/") (sigma_split formula-decl nil sigma "reals/") (even_minus_odd_is_odd application-judgement "odd_int" integers nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (real_le_is_total_order name-judgement "(total_order?[real])" real_props nil) (real_plus_real_is_real application-judgement "real" reals nil) (sigma_restrict_gen formula-decl nil sigma_lemmas nil) (sigma_eq_index2 formula-decl nil sigma_lemmas nil) (below type-eq-decl nil nat_types nil) (> const-decl "bool" reals nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (nnint_plus_posint_is_posint application-judgement "posint" integers nil) (sigma_eq_index3 formula-decl nil sigma_lemmas nil) (sigma_eq formula-decl nil sigma "reals/") (int_plus_int_is_int application-judgement "int" integers nil) (subrange type-eq-decl nil integers nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (sigma_eq_index formula-decl nil sigma_lemmas nil) (sigma_shift_gen formula-decl nil sigma_lemmas nil) (x!1 skolem-const-decl "Index[BV2toBV1(M!1 * V!1)`comp1 + BV2toBV1(M!1 * V!1)`comp2]" block_matrices nil) (comp_distr_add formula-decl nil vectors "vectors/") (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (Block2M4 const-decl "Matrix" block_matrices nil) (square? const-decl "bool" matrices nil) (NOT const-decl "[bool -> bool]" booleans nil) (Block2M2 const-decl "Matrix" block_matrices nil) (+ const-decl "real" vectors "vectors/")) shostak) (sigmaeqindex2 "sigmaeqindex2" 3541848871 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M4(M!1)`cols" "M!1`cols2" "LAMBDA (k: below(Block2M4(M!1)`cols)):
              Block2M4(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V2(V!1)(k)" "LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               V!1`vector(i + M!1`cols1)") (("1" (expand "Block2M4" -1 1) (("1" (case "  (FORALL (i_1: below[Block2M4(M!1)`cols]):
         Block2M4(M!1)`matrix((x!1 - M!1`rows1), i_1) * Block2V2(V!1)(i_1)
          =
          Block2M(M!1)`matrix(x!1, i_1 + M!1`cols1) *
           V!1`vector(i_1 + M!1`cols1))") (("1" (replace -1 -2) (("1" (hide -1) (("1" (expand "Block2M4" -1 1) (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (hide -1) (("2" (hide 2) (("2" (skosimp) (("2" (hide -3) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -1 2) (("3" (skosimp) (("3(typepred "i!1") (("3" (hide -4) (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -1 2) (("4" (skosimp) (("4" (typepred "i!1") (("4" (hide -4) (("4" (grind) nil nil)) nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil) ("6" (hide -1 2) (("6" (skosimp) (("6" (hide -3) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil)) nil) ("7" (hide -1 2) (("7" (skosimp) (("7" (typepred "x!1") (("7" (hide -4) (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "i!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -1 2) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (hide -3 2) (("3" (grind) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (typepred "x!1") (("5" (hide -4 2) (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (hide -1 -4 2) (("4" (typepred "i!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (hide -1 -4 2) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (hide -1 -4 2) (("3" (skosimp) (("3" (typepred "i!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -1 -4 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (assert) nil nil)) nil)) nil) ("6" (hide -1 -4 2) (("6" (skosimp) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (hide -1 -4 2) (("7" (typepred "x!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2(hide -3 2) (("2" (skosimp) (("2" (typepred "x!2") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2(hide 2) (("2" (lemma "sigma_eq_index2") (("2" (postpone) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (assert) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M2") (("6" (assert) nil nil)) nil)) nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (typepred "x!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "k!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ((+ const-decl "real" vectors "vectors/") (square? const-decl "bool" matrices nil) (comp_distr_add formula-decl nil vectors "vectors/") (sigma_eq formula-decl nil sigma "reals/") (sigma_split formula-decl nil sigma "reals/") (T_low type-eq-decl nil sigma "reals/") (T_high type-eq-decl nil sigma "reals/") (sigma def-decl "real" sigma "reals/") (Vector type-eq-decl nil vectors "vectors/") (Matrix type-eq-decl nil matrices nil) (* const-decl "Vector[M`rows]" matrices nil) (Index type-eq-decl nil vectors "vectors/")) shostak) (sig "sig" 3541848590 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1(expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M4(M!1)`cols" "M!1`cols2" "LAMBDA (k: below(Block2M4(M!1)`cols)):
              Block2M4(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V2(V!1)(k)" "LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               V!1`vector(i + M!1`cols1)") (("1" (expand "Block2M4" -1 1) (("1" (case "  (FORALL (i_1: below[Block2M4(M!1)`cols]):
         Block2M4(M!1)`matrix((x!1 - M!1`rows1), i_1) * Block2V2(V!1)(i_1)
          =
          Block2M(M!1)`matrix(x!1, i_1 + M!1`cols1) *
           V!1`vector(i_1 + M!1`cols1))") (("1" (replace -1 -2) (("1" (hide -1) (("1" (expand "Block2M4" -1 1) (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (hide -1) (("2" (hide 2) (("2" (skosimp) (("2" (hide -3) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -1 2) (("3" (skosimp) (("3(typepred "i!1") (("3" (hide -4) (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -1 2) (("4" (skosimp) (("4" (typepred "i!1") (("4" (hide -4) (("4" (grind) nil nil)) nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil) ("6" (hide -1 2) (("6" (skosimp) (("6" (hide -3) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil)) nil) ("7" (hide -1 2) (("7" (skosimp) (("7" (typepred "x!1") (("7" (hide -4) (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "i!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -1 2) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (hide -3 2) (("3" (grind) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (typepred "x!1") (("5" (hide -4 2) (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (hide -1 -4 2) (("4" (typepred "i!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (hide -1 -4 2) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (hide -1 -4 2) (("3" (skosimp) (("3" (typepred "i!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -1 -4 2) (("4" (skosimp) (("4" (typepred "x!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (assert) nil nil)) nil)) nil) ("6" (hide -1 -4 2) (("6" (skosimp) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (hide -1 -4 2) (("7" (typepred "x!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2(postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (sigma "sigma" 3541790770 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4-3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M4(M!1)`cols" "M!1`cols2" "LAMBDA (k: below(Block2M4(M!1)`cols)):
              Block2M4(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V2(V!1)(k)" "LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               V!1`vector(i + M!1`cols1)") (("1" (expand "Block2M4" -1 1) (("1" (case "  (FORALL (i_1: below[Block2M4(M!1)`cols]):
         Block2M4(M!1)`matrix((x!1 - M!1`rows1), i_1) * Block2V2(V!1)(i_1)
          =
          Block2M(M!1)`matrix(x!1, i_1 + M!1`cols1) *
           V!1`vector(i_1 + M!1`cols1))") (("1" (replace -1 -2) (("1" (hide -1) (("1" (expand "Block2M4" -1 1) (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (hide -1) (("2" (hide 2) (("2" (skosimp) (("2" (hide -3) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (hide -1 2) (("3" (skosimp) (("3(typepred "i!1") (("3" (hide -4) (("3" (grind) nil nil)) nil)) nil)) nil)) nil) ("4" (hide -1 2) (("4" (skosimp) (("4" (typepred "i!1") (("4" (hide -4) (("4" (grind) nil nil)) nil)) nil)) nil)) nil) ("5" (hide -1 -4 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil) ("6" (hide -1 2) (("6" (skosimp) (("6" (hide -3) (("6" (typepred "i!1") (("6" (grind) nil nil)) nil)) nil)) nil)) nil) ("7" (hide -1 2) (("7" (skosimp) (("7" (typepred "x!1") (("7" (hide -4) (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (typepred "i!1") (("2" (grind) nil nil)) nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (typepred "x!1") (("3" (grind) nil nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (typepred "x!1") (("5" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -1 2) (("2" (postpone) nil nil)) nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (sigmas "sigmas" 3541790578 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1(hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M4(M!1)`cols" "M!1`cols2" "LAMBDA (k: below(Block2M4(M!1)`cols)):
              Block2M4(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V2(V!1)(k)" "LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               V!1`vector(i + M!1`cols1)") (("1" (expand "Block2M4" -1 1) (("1" (case "  (FORALL (i_1: below[Block2M4(M!1)`cols]):
         Block2M4(M!1)`matrix((x!1 - M!1`rows1), i_1) * Block2V2(V!1)(i_1)
          =
          Block2M(M!1)`matrix(x!1, i_1 + M!1`cols1) *
           V!1`vector(i_1 + M!1`cols1))") (("1" (replace -1 -2) (("1" (hide -1) (("1" (expand "Block2M4" -1 1) (("1" (propax) nil nil)) nil)) nil)) nil) ("2" (hide -1) (("2" (hide 2) (("2" (skosimp) (("2" (hide -3) (("2" (grind) nil nil)) nil)) nil)) nil)) nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4(postpone) nil nil) ("5" (postpone) nil nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (sigmaeqindex "sigmaeqindex" 3541790351 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1(expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6(postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (sigmashiftgen "sigmashiftgen" 3541790129 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M2(M!1)`cols)):
              Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
               Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))") (("1" (replace -1 1) (("1" (hide -1) (("1" (assert) (("1" (lemma "sigma_shift_gen") (("1" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2(postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (sigmasplit "sigmasplit" 3541788766 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (flatten) (("1" (expand "Block2M1" -2) (("1" (expand "Block2M4" -3) (("1" (typepred "V!1") (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V") (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 " (x!1 - M!1`rows1)" "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (postpone) nil nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide -3 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (hide -3 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide -3 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (grind) nil nil)) nil)) nil)) nil) ("5" (hide -3 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (hide -3 2) (("6" (skosimp) (("6" (grind) nil nil)) nil)) nil) ("7" (hide -3 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide -3 2) (("8" (skosimp) (("8" (grind) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil)) nil) ("9" (hide -3 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide -3 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (cosas "cosas" 3540066109 ("" (skosimp) (("" (apply-extensionality) (("(hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1(typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M2(M!1)`rows]") (("1" (inst -1 "x!1-M!1`rows1" "_" "_") (("1" (inst -1 "(LAMBDA (i: below(Block2M2(M!1)`rows)):
          sigma(0, Block2M2(M!1)`cols - 1,
                LAMBDA (k: below(Block2M2(M!1)`cols)):
                  Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" "_") (("1" (inst -1 " (LAMBDA (i: below(Block2M4(M!1)`rows)):
           sigma(0, Block2M4(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M4(M!1)`cols)):
                   Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M2" 1 1) (("1" (expand "Block2M4" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (postpone) nil nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (assert) (("2" (typepred "y!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M4") (("2" (expand "Block2M2") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (skosimp) (("3" (expand "Block2M4") (("3" (assert) (("3" (typepred "y!1") (("3" (expand "Block2M4") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M4") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M4") (("5" (assert) nil nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M4") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (skosimp) (("2" (expand "Block2M2") (("2" (assert) (("2" (typepred "y!1") (("2" (expand "Block2M2") (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M2") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M2") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M2") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (mitad "mitad" 3540063959 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (lemma "sigma_eq_index3") (("2" (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2" "M!1`cols1" " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (expand "Block2M") (("1" (propax) nil nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (eqindexgen "eqindexgen" 3540062800 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (assert) (("1" (swap-rel -1) (("1" (case " sigma[below[M!1`cols1 + M!1`cols2]]
          (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
           LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
             Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 -2) (("1" (replace -2 1) (("1" (hide -2) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M3(M!1)`cols" "M!1`cols2" " LAMBDA (k: below(Block2M3(M!1)`cols)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)" " LAMBDA (k: below(M!1`cols2)):
              Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)") (("1" (expand "Block2M3" -1 1) (("1" (hide -2) (("1" (expand "Block2M3" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols2]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols2]):
              Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)" " LAMBDA (i: below[M!1`cols2]):
              Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
               Block2V(V!1)(i + M!1`cols1)" "M!1`cols2-1" "0") (("1" (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
         Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
           Block2V(V!1)(n + M!1`cols1))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M3") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M3") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M3") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (assert) (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M3") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (hide -1) (("2" (postpone) nil nil)) nil)) nil) ("3" (skosimp) (("3" (assert) nil nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (propax) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3(skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (bien "bien" 3540051709 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq[below[M!1`cols1]]") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1]):
              Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)" " LAMBDA (i: Index[M!1`cols1]):
              Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "M!1`cols1 -1" "0") (("1" (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
         Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
          Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))") (("1" (replace -1 -2) (("1" (propax) nil nil)) nil) ("2" (hide -1 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil) ("3" (skosimp) (("3" (typepred "n!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (typepred "n!1") (("5" (assert) nil nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "i!1") (("4" (expand "Block2M") (("4" (expand "Block2M1") (("4" (propax) nil nil)) nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil) ("2(skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (enca "enca" 3540051470 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_restrict_gen") (("1" (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_") (("1" (inst -1 "LAMBDA (i: Index[M!1`cols1]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)" "_") (("1" (inst -1 " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
               Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)") (("1" (assert) (("1" (swap-rel -1) (("1" (replace -1 1) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil) ("2" (skosimp) (("2" (assert) nil nil)) nil) ("3" (skosimp) (("3" (typepred "i!1") (("3" (expand "Block2M") (("3" (propax) nil nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (assert) nil nil)) nil) ("6" (skosimp) (("6" (typepred "i!1") (("6" (expand "Block2M") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M") (("7" (assert) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "i!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (encamin "encamin" 3540051166 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (lemma "sigma_eq_index") (("1" (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_") (("1" (inst -1 " LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)" "_") (("1" (inst -1 " LAMBDA (k: below(M!1`cols1)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)") (("1" (expand "Block2M1" -1 1) (("1" (expand "Block2M1" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M1") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M1") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M1") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5(assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7(skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (faltaaun "faltaun" 3540046553 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (replace -1 1) (("1" (hide -1) (("1(assert) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_eq_index2") (("2" (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2" "M!1`cols1" " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)") (("1" (expand "Block2M" -1 1) (("1" (expand "Block2M" -1 1) (("1" (replace -1 1) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (expand "Block2M") (("2" (typepred "k!1") (("2" (propax) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil) ("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9(hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (falta "falta" 3540046107 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (inst -1 " LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)" " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, M!1`cols1 - 1,
            LAMBDA (k: below(Block2M1(M!1)`cols)):
              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
             LAMBDA (k: below(Block2M(M!1)`cols)):
               Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))") (("1" (postpone) nil nil) ("2" (hide 2) (("2" (postpone) nil nil)) nil) ("3" (skosimp) (("3" (hide 2) (("3" (typepred "k!1") (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil)) nil) ("4" (skosimp) (("4" (expand "Block2M") (("4" (assert) nil nil)) nil)) nil) ("5" (skosimp) (("5" (expand "Block2M1") (("5" (assert) (("5" (typepred "y!1") (("5" (expand "Block2M1") (("5" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("6" (skosimp) (("6" (typepred "k!1") (("6" (expand "Block2M1") (("6" (assert) nil nil)) nil)) nil)) nil) ("7" (skosimp) (("7" (expand "Block2M1") (("7" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (typepred "k!1") (("2" (expand "Block2M") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (skosimp) (("3" (expand "Block2M") (("3" (assert) nil nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6(hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (antesmitad "antesmitad" 3539938822 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (lemma "sigma_split[ below(Block2M(M!1)`cols)]") (("1" (postpone) nil nil) ("2" (skosimp) (("2" (hide 2) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (skosimp) (("2" (hide 2) (("2" (grind) nil nil)) nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (skosimp) (("3" (grind) (("3" (typepred "y!1") (("3" (expand "Block2M3") (("3" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("4" (hide 2) (("4" (skosimp) (("4" (typepred "k!1") (("4" (expand "Block2M3") (("4" (assert) nil nil)) nil)) nil)) nil)) nil) ("5" (hide 2) (("5" (skosimp) (("5" (grind) nil nil)) nil)) nil) ("6" (skosimp) (("6" (hide 3) (("6" (grind) nil nil)) nil)) nil) ("7" (hide 2) (("7" (skosimp) (("7" (skosimp) (("7" (grind) (("7" (typepred "y!1") (("7" (expand "Block2M1") (("7" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil) ("8" (hide 2) (("8" (skosimp) (("8" (typepred "k!1") (("8" (grind) nil nil)) nil)) nil)) nil) ("9" (hide 2) (("9" (skosimp) (("9" (grind) nil nil)) nil)) nil) ("10" (hide 2) (("10" (skosimp) (("10" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (bien "bien" 3539938625 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (expand "Block2M" 1 1) (("1" (expand "Block2M1" 1 1) (("1" (expand "Block2M3" 1 1) (("1" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil) ("8" (postpone) nil nil) ("9" (postpone) nil nil) ("10" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (vamosbien "vamosbien" 3539937069 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (expand "*") (("1" (lemma "comp_distr_add[Block2M1(M!1)`rows]") (("1" (inst -1 "x!1" "(LAMBDA (i: below(Block2M1(M!1)`rows)):
          sigma(0, Block2M1(M!1)`cols - 1,
                LAMBDA (k: below(Block2M1(M!1)`cols)):
                  Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))" " (LAMBDA (i: below(Block2M3(M!1)`rows)):
           sigma(0, Block2M3(M!1)`cols - 1,
                 LAMBDA (k: below(Block2M3(M!1)`cols)):
                   Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))") (("1" (replace -1 1) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil) ("2" (postpone) nil nil) ("3" (postpone) nil nil) ("4" (postpone) nil nil) ("5" (postpone) nil nil) ("6" (postpone) nil nil) ("7" (postpone) nil nil) ("8" (postpone) nil nil) ("9" (postpone) nil nil) ("10" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (encamino "encamino" 3539936585 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (lemma "VtoBlocktoV") (("1" (typepred "V!1") (("1" (hide -3) (("1" (expand "*" 1 1) (("1" (expand "BV2toBV1") (("1" (expand "Block2V" 1 1) (("1" (expand "Bdiag_square?") (("1" (expand "square?") (("1" (expand "Block2M1" -3) (("1" (expand "Block2M4" -3) (("1" (flatten) (("1" (assert) (("1" (postpone) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (block_product-1 nil 3539497306 ("" (skosimp) (("" (apply-extensionality) (("" (hide 2) (("" (case "x!1<M!1`cols1") (("1" (typepred "M!1") (("1" (postpone) nil nil)) nil) ("2" (case "x!1>=M!1`cols1") (("1" (hide 1) (("1" (postpone) nil nil)) nil) ("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) nil shostak)) (Block2V_product 0 (thm "finished" 3539923895 ("" (skosimp) (("" (expand "*" 1 1) (("" (expand "*") (("" (expand "Block2V") (("" (expand "Block2V1") (("" (expand "Block2V2") (("" (lemma "sigma_split[Index[V!1`comp1 + V!1`comp2]]") (("1" (inst -1 "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i)" "V!1`comp1 + V!1`comp2 - 1" "0" " V!1`comp1 - 1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, V!1`comp1 - 1,
            LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i))= sigma(0, V!1`comp1 - 1,
             LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i))") (("1" (replace -1 1) (("1" (assert) (("1" (hide -1) (("1" (lemma "sigma_shift_gen") (("1" (inst -1 "V!1`comp2" "V!1`comp2" "V!1`comp1" " LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i)") (("1" (assert) nil nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_restrict_gen") (("2" (inst -1 "V!1`comp1" "V!1`comp1" "V!1`comp2" " LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i)" "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i)") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (hide 2) (("3(skosimp) (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((* const-decl "real" block_matrices nil) (Block2V const-decl "Vector[V`comp1 + V`comp2]" block_matrices nil) (Block2V2 const-decl "Vector[V`comp2]" block_matrices nil) (int_minus_int_is_int application-judgement "int" integers nil) (real_times_real_is_real application-judgement "real" reals nil) (* const-decl "[numfield, numfield -> numfield]" number_fields nil) (= const-decl "[T, T -> boolean]" equalities nil) (Block_Vect type-eq-decl nil block_matrices nil) (OR const-decl "[bool, bool -> bool]" booleans nil) (T_high type-eq-decl nil sigma "reals/") (- const-decl "[numfield, numfield -> numfield]" number_fields nil) (T_low type-eq-decl nil sigma "reals/") (sigma def-decl "real" sigma "reals/") (sigma_shift_gen formula-decl nil sigma_lemmas nil) (nonneg_int nonempty-type-eq-decl nil integers nil) (> const-decl "bool" reals nil) (below type-eq-decl nil nat_types nil) (sigma_restrict_gen formula-decl nil sigma_lemmas nil) (real_ge_is_total_order name-judgement "(total_order?[real])" real_props nil) (real_plus_real_is_real application-judgement "real" reals nil) (real_le_is_total_order name-judgement "(total_order?[real])" real_props nil) (real_lt_is_strict_total_order name-judgement "(strict_total_order?[real])" real_props nil) (even_minus_odd_is_odd application-judgement "odd_int" integers nil) (integer nonempty-type-from-decl nil integers nil) (IMPLIES const-decl "[bool, bool -> bool]" booleans nil) (AND const-decl "[bool, bool -> bool]" booleans nil) (<= const-decl "bool" reals nil) (posint_plus_nnint_is_posint application-judgement "posint" integers nil) (sigma_split formula-decl nil sigma "reals/") (number nonempty-type-decl nil numbers nil) (boolean nonempty-type-decl nil booleans nil) (number_field_pred const-decl "[number -> boolean]" number_fields nil) (number_field nonempty-type-from-decl nil number_fields nil) (real_pred const-decl "[number_field -> boolean]" reals nil) (real nonempty-type-from-decl nil reals nil) (rational_pred const-decl "[real -> boolean]" rationals nil) (rational nonempty-type-from-decl nil rationals nil) (integer_pred const-decl "[rational -> boolean]" integers nil) (int nonempty-type-eq-decl nil integers nil) (bool nonempty-type-eq-decl nil booleans nil) (>= const-decl "bool" reals nil) (nat nonempty-type-eq-decl nil naturalnumbers nil) (< const-decl "bool" reals nil) (numfield nonempty-type-eq-decl nil number_fields nil) (+ const-decl "[numfield, numfield -> numfield]" number_fields nil) (posnat nonempty-type-eq-decl nil integers nil) (below type-eq-decl nil naturalnumbers nil) (Block_Vector type-eq-decl nil block_matrices nil) (Index type-eq-decl nil vectors "vectors/") (Block2V1 const-decl "Vector[V`comp1]" block_matrices nil) (* const-decl "real" vectors "vectors/")) shostak) (faltauna "faltauna" 3539918944 ("" (skosimp) (("" (expand "*" 1 1) (("" (expand "*") (("" (expand "Block2V") (("" (expand "Block2V1") (("" (expand "Block2V2") (("(lemma "sigma_split[Index[V!1`comp1 + V!1`comp2]]") (("1" (inst -1 "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i)" "V!1`comp1 + V!1`comp2 - 1" "0" " V!1`comp1 - 1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, V!1`comp1 - 1,
            LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i))= sigma(0, V!1`comp1 - 1,
             LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i))") (("1" (replace -1 1) (("1" (assert) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (lemma "sigma_restrict_gen") (("2" (inst -1 "V!1`comp1" "V!1`comp1" "V!1`comp2" " LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i)" "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i)") (("2" (assert) nil nil)) nil)) nil)) nil) ("3" (hide 2) (("3(skosimp) (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ((* const-decl "real" vectors "vectors/") (Index type-eq-decl nil vectors "vectors/") (sigma_split formula-decl nil sigma "reals/") (sigma def-decl "real" sigma "reals/") (T_low type-eq-decl nil sigma "reals/") (T_high type-eq-decl nil sigma "reals/")) shostak) (encamino "encamino" 3539495354 ("" (skosimp) (("" (expand "*" 1 1) (("" (expand "*") (("" (expand "Block2V") (("" (expand "Block2V1") (("" (expand "Block2V2") (("" (lemma "sigma_split[Index[V!1`comp1 + V!1`comp2]]") (("1" (inst -1 "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i)" "V!1`comp1 + V!1`comp2 - 1" "0" " V!1`comp1 - 1") (("1" (assert) (("1" (replace -1 1) (("1" (hide -1) (("1" (case " sigma(0, V!1`comp1 - 1,
            LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i))= sigma(0, V!1`comp1 - 1,
             LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
               V!1`vector(i) * W!1`vector(i))") (("1" (replace -1 1) (("1" (assert) (("1" (hide -1) (("1" (postpone) nil nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (postpone) nil nil)) nil) ("3" (hide 2) (("3" (skosimp) (("3" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) ("2" (hide 2) (("2" (skosimp) (("2" (grind) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) nil shostak) (Block2V_product-1 nil 3539486935 ("" (skosimp) (("" (expand "*" 1 1) (("" (expand "*") (("" (expand "Block2V") (("" (expand "Block2V1") (("" (expand "Block2V2") (("" (lemma "sigma_shift_T[ Index[V!1`comp2]]") (("1" (postpone) nil nil) ("2" (skosimp) (("2" (assert) nil nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil)) nil) nil shostak)))

Messung V0.5 in Prozent
C=100 H=77 G=89

¤ Dauer der Verarbeitung: 0.62 Sekunden  (vorverarbeitet am  2026-04-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge