(more_list_props
(length_parm 0
(length_parm-1 nil 3500358324
("" (skolem 1 ("PP" _))
(("" (induct "pl" )
(("1" (grind) nil nil )
("2" (skosimp* :preds? t)
(("2" (expand "length" +) (("2" (propax) nil nil )) nil )) nil ))
nil ))
nil )
((list type-decl nil list_adt nil )
(every adt-def-decl "boolean" list_adt nil )
(number nonempty-type-decl nil numbers nil )
(= const-decl "[T, T -> boolean]" equalities 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 )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(length def-decl "nat" list_props nil )
(PRED type-eq-decl nil defined_types nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(T formal-type-decl nil more_list_props nil )
(list_induction formula-decl nil list_adt nil )
(NOT const-decl "[bool -> bool]" booleans nil ))
shostak))
(nth_parm_TCC1 0
(nth_parm_TCC1-1 nil 3500358260
("" (skosimp* :preds? t)
(("" (use "length_parm" ) (("" (assert ) nil nil )) nil )) nil )
((length_parm formula-decl nil more_list_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(T formal-type-decl nil more_list_props nil )
(PRED type-eq-decl nil defined_types nil )
(list type-decl nil list_adt nil )
(every adt-def-decl "boolean" list_adt 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 )
(length def-decl "nat" list_props nil )
(below type-eq-decl nil nat_types nil ))
nil ))
(nth_parm 0
(nth_parm-1 nil 3500358406
("" (skolem 1 ("PP" _ _))
(("" (induct "pl" )
(("1" (grind) nil nil )
("2" (skosimp* :preds? t)
(("2" (expand "nth" +)
(("2" (lift-if)
(("2" (prop) (("2" (inst?) (("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("3" (grind)
(("3" (hide-all-but (-3 1))
(("3" (use "length_parm" ) (("3" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((below type-eq-decl nil nat_types nil )
(length def-decl "nat" list_props 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 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 )
(number nonempty-type-decl nil numbers nil )
(PP skolem-const-decl "PRED[T]" more_list_props nil )
(every adt-def-decl "boolean" list_adt nil )
(list type-decl nil list_adt nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nth def-decl "T" list_props nil )
(PRED type-eq-decl nil defined_types nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(T formal-type-decl nil more_list_props nil )
(list_induction formula-decl nil list_adt nil )
(null adt-constructor-decl "(null?)" list_adt nil )
(null? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(n!1 skolem-const-decl
"below[length(cons(cons1_var!1, cons2_var!1))]" more_list_props
nil )
(cons2_var!1 skolem-const-decl "list[(PP)]" more_list_props nil )
(cons1_var!1 skolem-const-decl "(PP)" more_list_props nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(cons adt-constructor-decl "[[T, list] -> (cons?)]" list_adt nil )
(cons? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(length_parm formula-decl nil more_list_props nil ))
shostak))
(every_parm 0
(every_parm-1 nil 3500357635
("" (skosimp* :preds? t)
(("" (iff)
(("" (prop)
(("1" (rewrite "every_nth" )
(("1" (rewrite "every_nth" )
(("1" (rewrite "every_nth" )
(("1" (skosimp* :preds? t)
(("1" (expand "restrict" )
(("1" (inst?)
(("1" (inst?)
(("1" (assert )
(("1" (hide -1 -3)
(("1" (lemma "nth_parm" )
(("1" (inst -1 "P!1" "pl!1" "i!1" )
(("1" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (use "length_parm" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (rewrite "every_nth" )
(("2" (rewrite "every_nth" )
(("2" (rewrite "every_nth" )
(("2" (skosimp* :preds? t)
(("2" (expand "restrict" )
(("2" (inst?)
(("1" (inst?)
(("1" (assert )
(("1" (hide -1 -3)
(("1" (lemma "nth_parm" )
(("1" (inst -1 "P!1" "pl!1" "i!1" )
(("1" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (use "length_parm" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((i!1 skolem-const-decl "below(length(pl!1))" more_list_props nil )
(every_nth formula-decl nil list_props nil )
(restrict const-decl "R" restrict nil )
(length_parm formula-decl nil more_list_props nil )
(below type-eq-decl nil nat_types nil )
(nth_parm formula-decl nil more_list_props nil )
(i!1 skolem-const-decl "below(length[T](pl!1))" more_list_props
nil )
(pl!1 skolem-const-decl "list[(P!1)]" more_list_props nil )
(P!1 skolem-const-decl "PRED[T]" more_list_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props 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 )
(length def-decl "nat" list_props nil )
(below type-eq-decl nil naturalnumbers nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(T formal-type-decl nil more_list_props nil )
(PRED type-eq-decl nil defined_types nil )
(list type-decl nil list_adt nil )
(every adt-def-decl "boolean" list_adt nil ))
shostak))
(append_parm 0
(append_parm-1 nil 3520967096
("" (skolem 1 ("P" "_" "_" ))
(("" (induct "l1" )
(("1" (grind) nil nil )
("2" (skosimp)
(("2" (skosimp)
(("2" (expand "append" +)
(("2" (inst -1 "l2!1" ) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil )
((list type-decl nil list_adt nil )
(every adt-def-decl "boolean" list_adt nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(append def-decl "list[T]" list_props nil )
(PRED type-eq-decl nil defined_types nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(T formal-type-decl nil more_list_props nil )
(list_induction formula-decl nil list_adt nil ))
shostak))
(append_append_cons 0
(append_append_cons-1 nil 3520141411
("" (induct "l1" )
(("1" (grind) nil nil )
("2" (skeep :preds? t)
(("2" (skeep :preds? t)
(("2" (expand "append" 1 1)
(("2" (expand "append" 1 3)
(("2" (expand "append" 1 2)
(("2" (decompose-equality 1) (("2" (inst?) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((list_cons_extensionality formula-decl nil list_adt nil )
(list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(null adt-constructor-decl "(null?)" list_adt nil )
(null? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(cons adt-constructor-decl "[[T, list] -> (cons?)]" list_adt nil )
(cons? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(append def-decl "list[T]" list_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(list type-decl nil list_adt nil ))
shostak))
(append_equal_null 0
(append_equal_null-1 nil 3520140894
("" (induct "l2" )
(("1" (induct "l1" )
(("1" (skeep :preds? t)
(("1" (expand "append" -2) (("1" (propax) nil nil )) nil )) nil ))
nil )
("2" (skeep :preds? t)
(("2" (induct "l1" )
(("2" (skeep :preds? t)
(("2" (expand "append" -2)
(("2" (decompose-equality -2)
(("2"
(case-replace
"append(cons2_var_1, cons(cons1_var, cons2_var)) =
append(append(cons2_var_1, cons(cons1_var, null)), cons2_var)" :hide?
t)
(("1" (hide -3)
(("1"
(inst -3
"append(cons2_var_1, cons(cons1_var, null))" )
(("1" (assert )
(("1" (expand "append" -3)
(("1" (lift-if) (("1" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (use "append_append_cons" ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((cdr adt-accessor-decl "[(cons?) -> list]" list_adt nil )
(car adt-accessor-decl "[(cons?) -> T]" list_adt nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(append_append_cons formula-decl nil more_list_props nil )
(cons adt-constructor-decl "[[T, list] -> (cons?)]" list_adt nil )
(cons? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(null adt-constructor-decl "(null?)" list_adt nil )
(null? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(append def-decl "list[T]" list_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(list type-decl nil list_adt nil ))
shostak))
(nth_append_below_TCC1 0
(nth_append_below_TCC1-1 nil 3520951758
("" (induct "l1" )
(("1" (grind) nil nil )
("2" (skosimp)
(("2" (skosimp)
(("2" (expand "append" +)
(("2" (expand "length" +)
(("2" (expand "length" -2)
(("2" (inst?)
(("2" (inst?)
(("2" (assert )
(("2" (rewrite "length_append" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((length_append formula-decl nil list_props nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers 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 )
(list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(append def-decl "list[T]" list_props nil )
(length def-decl "nat" list_props nil )
(< const-decl "bool" reals nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans 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 )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(list type-decl nil list_adt nil ))
nil ))
(nth_append_below 0
(nth_append_below-1 nil 3520951770
("" (induct "l1" )
(("1" (grind) nil nil )
("2" (skosimp :preds? t)
(("2" (skosimp :preds? t)
(("2" (expand "append" 1 1)
(("2" (expand "nth" +)
(("2" (lift-if)
(("2" (prop)
(("2" (inst?)
(("1" (assert )
(("1" (expand "length" -2) (("1" (assert ) nil nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (hide 2)
(("3" (skosimp :preds? t)
(("3" (rewrite "length_append" ) (("3" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
((length_append formula-decl nil list_props nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
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 )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(i!1 skolem-const-decl "nat" more_list_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 )
(NOT const-decl "[bool -> bool]" booleans nil )
(list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(nth def-decl "T" list_props nil )
(below type-eq-decl nil nat_types nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(list type-decl nil list_adt 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 )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(< const-decl "bool" reals nil )
(length def-decl "nat" list_props nil )
(append def-decl "list[T]" list_props nil ))
shostak))
(nth_append_above_TCC1 0
(nth_append_above_TCC1-1 nil 3520951758
("" (skosimp)
(("" (rewrite "length_append" ) (("" (assert ) nil nil )) nil )) nil )
((length_append formula-decl nil list_props nil )
(list type-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
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 )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(nth_append_above 0
(nth_append_above-1 nil 3520952014
("" (induct "l1" )
(("1" (grind) nil nil )
("2" (skosimp :preds? t)
(("2" (skosimp :preds? t)
(("2" (expand "append" +)
(("2" (expand "length" +)
(("2" (expand "nth" 1 1)
(("2" (lift-if)
(("2" (expand "length" -3)
(("2" (assert )
(("2" (inst -2 "i!1 - 1" "l2!1" )
(("2" (assert )
(("2" (expand "append" -3)
(("2" (expand "length" -3)
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (skosimp :preds? t)
(("3" (assert )
(("3" (assert )
(("3" (rewrite "length_append" ) (("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(length_append formula-decl nil list_props 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 )
(int_plus_int_is_int application-judgement "int" integers nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(nth def-decl "T" list_props nil )
(below type-eq-decl nil nat_types nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(list type-decl nil list_adt 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 )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(length def-decl "nat" list_props nil )
(< const-decl "bool" reals nil )
(append def-decl "list[T]" list_props nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
shostak))
(tail?_TCC1 0
(tail?_TCC1-1 nil 3520133815 ("" (subtype-tcc) nil nil ) nil nil ))
(tail?_TCC2 0
(tail?_TCC2-1 nil 3520133815 ("" (termination-tcc) nil nil )
((<< adt-def-decl "(strict_well_founded?[list])" list_adt nil ))
nil ))
(tail_append 0
(tail_append-1 nil 3520141563
("" (induct "l1" )
(("1" (grind) (("1" (expand "tail?" ) (("1" (propax) nil nil )) nil ))
nil )
("2" (skeep :preds? t)
(("2" (expand "append" +)
(("2" (expand "tail?" +)
(("2" (skeep :preds? t) (("2" (inst?) nil nil )) nil )) nil ))
nil ))
nil ))
nil )
((list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(append def-decl "list[T]" list_props nil )
(tail? def-decl "bool" more_list_props nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(list type-decl nil list_adt nil ))
shostak))
(ldiff_TCC1 0
(ldiff_TCC1-1 nil 3520133815
("" (skeep :preds? t)
(("" (expand "tail?" ) (("" (assert ) nil nil )) nil )) nil )
((tail? def-decl "bool" more_list_props nil )) nil ))
(ldiff_TCC2 0
(ldiff_TCC2-1 nil 3520133815
("" (skeep :preds? t)
(("" (expand "tail?" -) (("" (assert ) nil nil )) nil )) nil )
((tail? def-decl "bool" more_list_props nil )) nil ))
(ldiff_TCC3 0
(ldiff_TCC3-1 nil 3520133815
("" (skeep :preds? t)
(("" (assert )
(("" (expand "<<" )
(("" (lift-if)
(("" (expand "tail?" ) (("" (prop) nil nil )) nil )) nil ))
nil ))
nil ))
nil )
((tail? def-decl "bool" more_list_props nil )
(<< adt-def-decl "(strict_well_founded?[list])" list_adt nil ))
nil ))
(ldiff_append_TCC1 0
(ldiff_append_TCC1-1 nil 3520133815
("" (induct "l1" )
(("1" (grind) (("1" (expand "tail?" ) (("1" (propax) nil nil )) nil ))
nil )
("2" (skeep :preds? t)
(("2" (expand "append" +)
(("2" (expand "tail?" +)
(("2" (skeep :preds? t)
(("2" (hide 1) (("2" (inst?) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil )
((list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(append def-decl "list[T]" list_props nil )
(tail? def-decl "bool" more_list_props nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(list type-decl nil list_adt nil ))
nil ))
(ldiff_append 0
(ldiff_append-1 nil 3520132082
("" (induct "l1" )
(("1" (grind) nil nil )
("2" (skeep :preds? t)
(("2" (skeep :preds? t)
(("2" (expand "append" +)
(("2" (expand "ldiff" +)
(("2" (lift-if)
(("2" (prop)
(("1" (lemma "append_equal_null" )
(("1" (inst -1 "cons(cons1_var, cons2_var)" "l2" )
(("1" (expand "append" -1 1)
(("1" (propax) nil nil )) nil ))
nil ))
nil )
("2" (hide 1)
(("2" (apply-extensionality :hide? t)
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (skeep :preds? t) (("3" (use "tail_append" ) nil nil )) nil ))
nil )
((tail_append formula-decl nil more_list_props nil )
(list_cons_extensionality formula-decl nil list_adt nil )
(append_equal_null formula-decl nil more_list_props nil )
(cons? adt-recognizer-decl "[list -> boolean]" list_adt nil )
(cons adt-constructor-decl "[[T, list] -> (cons?)]" list_adt nil )
(list_induction formula-decl nil list_adt nil )
(T formal-type-decl nil more_list_props nil )
(ldiff def-decl "list[T]" more_list_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(list type-decl nil list_adt nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(tail? def-decl "bool" more_list_props nil )
(append def-decl "list[T]" list_props nil ))
shostak)))
quality 100%
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland