# Proofs

proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: V3.2 ran
script:
  (""
   (skosimp*)
   (lemma "conn_eq_path[T]")
   (inst -1 "subgraph(G!1, reachable(G!1, x!1))")
   (iff -1)
   (bddsimp)
   (hide 1)
   (expand "path_connected?")
   (bddsimp)
   (("1"
     (install-rewrites "subgraphs")
     (assert)
     (inst -1 "x!1")
     (bddsimp)
     (("1"
       (inst 1 "(#length := 1, seq :=(LAMBDA (i:below(1)): x!1)#)")
       (assert))
      ("2" (typepred "x!1") (propax))))
    ("2"
     (skosimp*)
     (typepred "x!2")
     (typepred "y!1")
     (expand "subgraph" -)
     (flatten)
     (expand "reachable" -)
     (bddsimp)
     (skosimp*)
     (lemma "walk?_reverse")
     (inst-cp -1 "G!1" "x!1" "y!1" "w!1")
     (inst -1 "G!1" "x!1" "x!2" "w!2")
     (bddsimp)
     (skosimp*)
     (lemma "walk_merge")
     (inst -1 "G!1" "w!4" "w!3" "x!2" "y!1" "x!1")
     (bddsimp)
     (skosimp*)
     (inst 1 "p!1")
     (("1" (install-rewrites "walks") (assert) (bddsimp))
      ("2"
       (assert)
       (install-rewrites "walks")
       (assert)
       (skosimp*)
       (bddsimp)
       (("1"
         (skosimp*)
         (bddsimp)
         (("1" (typepred "p!1") (inst -11 "n!1") (bddsimp))
          ("2"
           (skosimp*)
           (inst-cp -9 "n!1")
           (("1"
             (inst -9 "1+n!1")
             (("1"
               (hide -3 -4 -5 -6)
               (bddsimp (-2 -5 -6 1))
               (("1"
                 (hide -8 -9 -11 -12)
                 (reveal -10 -11)
                 (reveal (-1 -2 -7 -8))
                 (lemma "walk?_caret")
                 (inst -1 "G!1" "0" "n!1" "p!1")
                 (stop-rewrite)
                 (assert)
                 (case "walk?(G!1,p!1)")
                 (("1"
                   (bddsimp)
                   (inst -8 "G!1" "x!2" "x!3" "p!1 ^ (0,  n!1)")
                   (expand "walk_from?" -8)
                   (expand "^" -8 (1 2 3))
                   (bddsimp (-2 -8))
                   (("1"
                     (skosimp*)
                     (inst -9 "G!1" "w!5" "w!2" "x!1" "x!3" "x!2")
                     (expand "walk_from?" -9 (1 2))
                     (typepred "w!2")
                     (case "walk?(G!1,w!2)")
                     (("1"
                       (bddsimp)
                       (skosimp*)
                       (inst 1 "p!2")
                       (("1"
                         (expand "walk_from?" -12)
                         (flatten)
                         (expand "walk?" -14)
                         (flatten)
                         (hide-all-but (-4 -7 -12 -13 -14 -15 -25 -26) -)
                         (grind))
                        ("2" (hide-all-but -12 -) (grind))))
                      ("2"
                       (hide-all-but (-2 -7 -8 -19) -)
                       (hide 2)
                       (install-rewrites "walks")
                       (assert))))
                    ("2" (hide-all-but (-8 1)) (expand "min") (assert))))
                  ("2"
                   (reveal -10)
                   (hide (-16 -17))
                   (hide-all-but (-1 -9 -12 -13 -14 -15) -)
                   (hide 2)
                   (assert)
                   (grind))))
                ("2" (hide-all-but (-1 -3) -) (assert))
                ("3"
                 (reveal -6 -7)
                 (lemma "walk?_caret")
                 (inst -1 "G!1" "0" "1+n!1" "p!1")
                 (inst -3 "G!1" "x!2" "x!3" "p!1 ^ (0, 1 + n!1)")
                 (("1"
                   (typepred "n!1")
                   (bddsimp (-1 -2 -4 -5 -8))
                   (("1"
                     (skosimp*)
                     (inst -6 "G!1" "w!5" "w!2" "x!1" "x!3" "x!2")
                     (hide-all-but (-3 -6 -12 -13 -14) -)
                     (typepred "w!2")
                     (case "walk_from?(G!1, w!2, x!1, x!2)")
                     (("1"
                       (bddsimp (-1 -4 -5))
                       (skosimp*)
                       (inst 1 "p!2")
                       (("1" (hide-all-but -3 -) (assert) (grind))
                        ("2" (hide-all-but -3 -) (grind))))
                      ("2"
                       (hide-all-but (-1 -2 -5 -6 -7) -)
                       (hide 2)
                       (assert)
                       (grind))))
                    ("2"
                     (hide 2)
                     (hide (-5 -11 -12 -13 -14 -15 -16 -17 -18))
                     (assert)
                     (bddsimp)
                     (("1" (grind)) ("2" (grind))))
                    ("3"
                     (hide 2)
                     (hide -2 -5 -11 -12 -13 -14 -15 -16)
                     (assert)
                     (bddsimp)
                     (typepred "p!1")
                     (reveal -13)
                     (propax))
                    ("4"
                     (hide -4 -12 -15 3)
                     (reveal -8)
                     (hide 2)
                     (assert)
                     (bddsimp))
                    ("5" (assert)) ("6" (assert)) ("7" (assert))
                    ("8" (assert))))
                  ("2" (hide -2 -9 -12 -15 2) (hide -1) (grind))))
                ("4" (assert (-1 -2 1)))))
              ("2" (assert (-1 1)))))
            ("2" (assert (-1 1)))))
          ("3" (inst -9 "n!1") (assert))))
        ("2"
         (skosimp*)
         (inst -7 "i!1")
         (bddsimp)
         (lemma "walk?_caret")
         (inst -1 "G!1" "0" "i!1" "p!1")
         (typepred "i!1")
         (reveal -4)
         (inst -1 "G!1" "x!2" "seq(p!1)(i!1)" "p!1 ^ (0, i!1)")
         (("1"
           (case "walk?(G!1,p!1)")
           (("1"
             (bddsimp (-1 -3 -4))
             (("1"
               (expand "walk_from?" -4 1)
               (expand "^" -4 (1 2))
               (expand "^" -4 1)
               (bddsimp (-3 -4 -10))
               (("1"
                 (skosimp*)
                 (reveal -3)
                 (inst -1 "G!1" "w!5" "w!2" "x!1" "seq(p!1)(i!1)" "x!2")
                 (case "walk_from?(G!1, w!2, x!1, x!2)")
                 (("1"
                   (bddsimp (-1 -2 -5))
                   (skosimp*)
                   (inst 1 "p!2")
                   (("1" (hide-all-but -3 -) (grind))
                    ("2"
                     (typepred "p!2")
                     (hide-all-but (-1 -4) -)
                     (grind))))
                  ("2"
                   (expand "walk_from?" 1)
                   (hide-all-but (-14 -15 -16) -)
                   (hide 2)
                   (grind))))
                ("2" (grind))))
              ("2"
               (reveal -2)
               (hide-all-but (-1 -10 -11 -12) -)
               (hide 2)
               (grind))))
            ("2"
             (reveal -2)
             (hide-all-but (-1 -10 -11 -12) -)
             (hide 2)
             (grind))))
          ("2" (hide 2) (expand "^" 1) (expand "min" 1) (assert))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst -1 "size(G!1)-size(H!1)" "H!1" "G!1")
   (("1" (assert))
    ("2" (lemma "subgraph_smaller") (inst -1 "G!1" "H!1") (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: trial
script:
  (""
   (skosimp*)
   (apply-extensionality 1)
   (("1"
     (apply-extensionality 1)
     (hide 2 3)
     (iff)
     (split)
     (("1"
       (expand "subgraph?" -)
       (flatten)
       (hide -3)
       (expand "subset?" -)
       (inst -3 "x!1")
       (assert)
       (expand "member" -)
       (propax))
      ("2"
       (lemma "graph_connected[T].conn_eq_path")
       (inst -1 "H!1")
       (flatten)
       (iff -1)
       (flatten)
       (hide -2)
       (bddsimp)
       (hide -1)
       (lemma "tree_paths[T].tree_one_path")
       (lemma "path?_subgraph[T]")
       (typepred "x!1")
       (skosimp*)
       (name "pp"
             "(# length:= 2, seq:= (LAMBDA (ii:below(2)): IF ii=0 THEN x!2 ELSE y!1 ENDIF) #)")
       (case "path_from?(G!1,pp,x!2,y!1)")
       (("1"
         (hide -2)
         (expand "path_connected?" -5)
         (flatten)
         (inst -5 "x!2" "y!1")
         (("1"
           (skosimp*)
           (lemma "path_ops[T].walk_to_path_from")
           (inst -1 "H!1" "x!2" "y!1" "w!1")
           (typepred "w!1")
           (expand "walk_from?" -3)
           (bddsimp)
           (skosimp*)
           (copy -5)
           (copy -7)
           (expand "path_from?" (-7 -8))
           (expand "from?" (-7 -8))
           (flatten)
           (inst -14 "G!1" "H!1" "p!1")
           (bddsimp)
           (inst -16 "G!1" "pp" "p!1" "x!2" "y!1")
           (case "path_from?(H!1, p!1, x!2, y!1) AND path?(G!1,p!1) IMPLIES path_from?(G!1, p!1, x!2, y!1)")
           (("1"
             (bddsimp)
             (replace -18 -9 rl)
             (expand "path?" -9)
             (flatten)
             (hide (-1 -2 -3 -4 -6 -7 -10))
             (hide (-4 -5 -6 -11 -13 -14))
             (expand "walk?" -3)
             (flatten)
             (inst -4 "0")
             (case "length(pp)=2")
             (("1" (grind)) ("2" (assert) (reveal -19) (assert))))
            ("2"
             (hide -1 -2 -3 -4 -5 -6 -7)
             (hide -1 -2 -3 -4 -5 -6 -9 -10 -11 -12)
             (grind))))
          ("2"
           (hide -1 -3 -4 -6 4)
           (expand "subgraph?" -3)
           (install-rewrites "finite_sets")
           (flatten)
           (expand "size" -5)
           (assert)
           (case "vert(G!1)(y!1)")
           (("1"
             (assert)
             (lemma "finite_sets[T].card_diff_subset")
             (inst -1 "vert(H!1)" "vert(G!1)")
             (expand "subset?" -1)
             (expand "member" -1)
             (bddsimp)
             (expand "difference" -2)
             (replace -7 -2)
             (case "card(vert(G!1))=card[T](vert(G!1))")
             (("1"
               (assert)
               (lemma "finite_sets[T].empty_card")
               (inst -1 "{x: T | vert(G!1)(x) AND NOT vert(H!1)(x)}")
               (("1"
                 (flatten)
                 (hide -1 -10)
                 (bddsimp)
                 (hide -1 -4)
                 (expand "empty?" -1)
                 (inst -1 "y!1")
                 (expand "member" 1)
                 (propax))
                ("2"
                 (lemma "finite_difference[T]")
                 (inst -1 "vert(G!1)" "vert(H!1)")
                 (hide-all-but -1 -)
                 (hide 2 3 4)
                 (auto-rewrite-defs :always? t)
                 (expand "is_finite")
                 (skosimp*)
                 (inst + "N!1" "f!1")
                 (skosimp*)
                 (assert)
                 (inst?)
                 (assert))))
              ("2" (propax))))
            ("2"
             (skosimp*)
             (lemma "finite_sets[T].card_diff_subset")
             (inst -1 "vert(H!1)" "vert(G!1)")
             (expand "subset?" -1)
             (expand "member" -1)
             (bddsimp)
             (case "card[T](vert(H!1))=card(vert(H!1))")
             (("1"
               (case "card[T](vert(G!1))=card(vert(G!1))")
               (("1"
                 (assert)
                 (replace -1 -4)
                 (replace -1 -4 rl)
                 (replace -2 -4 rl)
                 (replace -9 -4)
                 (assert)
                 (lemma "finite_sets[T].empty_card")
                 (inst -1 "difference(vert(G!1), vert(H!1))")
                 (bddsimp)
                 (expand "empty?" -1)
                 (inst -1 "y!1")
                 (expand "member" 1)
                 (expand "difference" 1)
                 (case "edges(G!1)(x!1)")
                 (("1"
                   (assert)
                   (typepred "G!1")
                   (inst -1 "x!1")
                   (bddsimp -1 -2)
                   (("1"
                     (inst -1 "y!1")
                     (assert)
                     (hide-all-but -6 -)
                     (hide-all-but 1 +)
                     (grind))
                    ("2" (propax))))
                  ("2" (propax))))
                ("2" (propax))))
              ("2" (propax))))))
          ("3"
           (hide -1 -3 -4 -6 4)
           (expand "size" -4)
           (lemma "finite_sets[T].card_diff_subset")
           (inst -1 "vert(H!1)" "vert(G!1)")
           (expand "subset?" -1)
           (expand "member" -1)
           (bddsimp)
           (("1"
             (case "card[T](vert(H!1))=card(vert(H!1))")
             (("1"
               (case "card[T](vert(G!1))=card(vert(G!1))")
               (("1"
                 (assert)
                 (replace -1 -3 rl)
                 (replace -2 -3 rl)
                 (replace -7 -3)
                 (assert)
                 (lemma "finite_sets[T].empty_card")
                 (inst -1 "difference(vert(G!1), vert(H!1))")
                 (bddsimp)
                 (expand "empty?" -1)
                 (inst -1 "x!2")
                 (expand "member" 1)
                 (expand "difference" 1)
                 (case "edges(G!1)(x!1)")
                 (("1"
                   (assert)
                   (typepred "G!1")
                   (inst -1 "x!1")
                   (bddsimp -1 -2)
                   (("1"
                     (inst -1 "x!2")
                     (expand "member" 1)
                     (hide (-2 -3 -4 -5 -7 -8 -9))
                     (grind))
                    ("2" (propax))))
                  ("2" (propax))))
                ("2" (propax))))
              ("2" (propax))))
            ("2" (hide -1 -2 -4) (grind))))))
        ("2"
         (hide -3 -4 -5 -7 -8 -9)
         (expand "path_from?" 1)
         (expand "path?" 1)
         (expand "from?" 1)
         (expand "walk?" 1)
         (expand "verts_in?" +)
         (expand "finseq_appl")
         (case "edges(G!1)(x!1)")
         (("1"
           (bddsimp)
           (("1"
             (grind)
             (case "length(pp)=2")
             (("1"
               (replace -1 1)
               (assert)
               (case "seq(pp)=(LAMBDA (ii: below(2)): IF ii = 0 THEN x!2 ELSE y!1 ENDIF)")
               (("1" (hide -2 -3 -4 -5 2 3) (grind))
                ("2" (hide -2 -4 2 3 4) (assert))))
              ("2" (assert))))
            ("2"
             (case "seq(pp)=(LAMBDA (ii: below(2)): IF ii = 0 THEN x!2 ELSE y!1 ENDIF)")
             (("1" (hide -2 -3 -4 2 3) (assert) (grind))
              ("2" (hide -1 -3 2 3 4) (assert))))
            ("3"
             (case "seq(pp)=(LAMBDA (ii: below(2)): IF ii = 0 THEN x!2 ELSE y!1 ENDIF)")
             (("1"
               (case "length(pp)=2")
               (("1" (hide -3 -4 3) (grind))
                ("2" (hide -1 -2 -4 2 3 4) (grind))))
              ("2" (hide -1 -3 2 3 4) (grind))))
            ("4"
             (case "seq(pp)=(LAMBDA (ii: below(2)): IF ii = 0 THEN x!2 ELSE y!1 ENDIF)")
             (("1"
               (case "length(pp)=2")
               (("1"
                 (hide -4 3)
                 (expand "edge?" 1)
                 (replace -1 1)
                 (assert)
                 (skosimp*)
                 (typepred "n!1")
                 (case "n!1=0")
                 (("1"
                   (replace -1 1)
                   (assert)
                   (replace -4 1)
                   (beta 1)
                   (assert))
                  ("2" (hide -2 -3 -4 -6 2 3) (assert))))
                ("2" (hide -1 -2 -4 2 3 4) (assert))))
              ("2" (hide -1 -3 2 3 4) (assert))))
            ("5"
             (case "seq(pp)=(LAMBDA (ii: below(2)): IF ii = 0 THEN x!2 ELSE y!1 ENDIF)")
             (("1"
               (case "length(pp)=2")
               (("1"
                 (typepred "G!1")
                 (inst -1 "x!1")
                 (bddsimp -1 -4)
                 (("1"
                   (inst-cp -1 "x!2")
                   (inst -1 "y!1")
                   (skosimp*)
                   (hide -6 3)
                   (typepred "i!1")
                   (replace -4 -1)
                   (replace -5 1)
                   (case "i!1=0 OR i!1=1")
                   (("1"
                     (split)
                     (("1"
                       (replace -1 1)
                       (hide -6 -7)
                       (beta)
                       (assert)
                       (grind))
                      ("2"
                       (replace -1 1)
                       (hide -6 -7)
                       (beta)
                       (assert)
                       (grind))))
                    ("2"
                     (typepred "i!1")
                     (hide -3 -4 -5 -6 -7 -8 2 3)
                     (assert)
                     (grind))))
                  ("2" (propax))))
                ("2" (hide -1 -2 -4 2 3 4) (grind))))
              ("2" (hide -1 -3 2 3 4) (grind))))))
          ("2" (propax))))
        ("3"
         (split)
         (("1" (hide-all-but -1 -) (grind))
          ("2" (hide-all-but -1 -) (grind))))))))
    ("2"
     (case "vert(H!1)=vert(G!1)")
     (("1" (propax))
      ("2"
       (hide 2 3)
       (hide -1 -4)
       (expand "size")
       (expand "subgraph?" -)
       (flatten)
       (lemma "finite_sets[T].card_diff_subset")
       (inst -1 "vert(H!1)" "vert(G!1)")
       (bddsimp -1 -2)
       (("1"
         (hide -2 -3)
         (case "card[T](vert(H!1))=card(vert(H!1))")
         (("1"
           (case "card[T](vert(G!1))=card(vert(G!1))")
           (("1"
             (replace -1 -3 rl)
             (replace -2 -3 rl)
             (assert -3 -4)
             (replace -4 -3)
             (assert -3)
             (lemma "finite_sets[T].empty_card")
             (inst -1 "difference(vert(G!1), vert(H!1))")
             (bddsimp)
             (expand "empty?" -1)
             (apply-extensionality 1)
             (hide 2)
             (inst -1 "x!1")
             (expand "member" 2)
             (expand "difference" 2)
             (copy 2)
             (delete 3)
             (expand "member" 1)
             (reveal -4)
             (expand "subset?" -1)
             (inst -1 "x!1")
             (expand "member" -1)
             (hide -2 -3 -4)
             (hide -2)
             (bddsimp))
            ("2" (propax))))
          ("2" (propax))))
        ("2" (propax))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: fixed for PVS 3.3
script:
  (""
   (induct "k" 1 "nat_induction")
   (("1"
     (lemma "sub_tree_0")
     (skosimp*)
     (inst? -1)
     (bddsimp)
     (("1" (replace -4 -1 rl) (propax)) ("2" (assert))))
    ("2"
     (skosimp*)
     (typepred "j!1")
     (expand "size" -6)
     (lemma "finite_sets[T].card_diff_subset")
     (inst -1 "vert(H!1)" "vert(G!1)")
     (expand "subgraph?" -4)
     (bddsimp)
     (replace -8 -2)
     (assert -2)
     (lemma "finite_sets[T].nonempty_card")
     (inst -1 "difference(vert(G!1), vert(H!1))")
     (bddsimp)
     (("1"
       (expand "nonempty?" -1)
       (expand "empty?" 1)
       (skosimp*)
       (expand "member" -)
       (hide -2)
       (expand "difference" -1)
       (expand "member" -)
       (bddsimp)
       (lemma "graph_conn_piece[T].connected_not_empty")
       (inst -1 "H!1")
       (bddsimp)
       (expand "empty?" 1)
       (expand "empty?" 1)
       (expand "member" +)
       (skosimp*)
       (hide -5 -10)
       (expand "subset?" -4)
       (inst -4 "x!2")
       (expand "member" -)
       (bddsimp)
       (lemma "graph_path_conn[T].tree_has_walk")
       (inst -1 "G!1" "x!2" "x!1")
       (case "x!2 /= x!1")
       (("1"
         (bddsimp)
         (skosimp*)
         (lemma "subtrees[T].walk_acr")
         (inst -1 "G!1" "H!1" "length(w!1)-1" "w!1")
         (("1"
           (assert -1)
           (expand "walk_from?" -5)
           (bddsimp)
           (("1" (replace -6 -1) (propax))
            ("2"
             (skosimp*)
             (typepred "j!2")
             (typepred "w!1")
             (assert -3)
             (name "H!2"
                   "(H!1 WITH [vert := add(seq(w!1)(j!2),vert(H!1))]) WITH [edges := add(dbl[T](seq(w!1)(j!2 -1),seq(w!1)(j!2)),edges(H!1))]")
             (("1"
               (case "vert(H!2)=add(seq(w!1)(j!2), vert(H!1))")
               (("1"
                 (hide -3)
                 (lemma "finite_sets[T].card_add")
                 (inst -1 "vert(H!1)" "seq(w!1)(j!2)")
                 (assert)
                 (case "size(H!2)=card(vert(H!2))")
                 (("1"
                   (reveal -8)
                   (case "card[T](vert(H!1))=size(H!1)")
                   (("1"
                     (case "card[T](vert(G!1))=size(G!1)")
                     (("1"
                       (hide -1 -2 -4 -5)
                       (name "ee"
                             "dbl[T](seq(w!1)(j!2 - 1), seq(w!1)(j!2))")
                       (case "H!1 = del_vert(H!2,seq(w!1)(j!2))")
                       (("1"
                         (case "deg(seq(w!1)(j!2),H!2)=1")
                         (("1"
                           (lemma "graph_complected[T].conn_del_vert")
                           (inst -1 "H!2")
                           (bddsimp)
                           (("1"
                             (inst -20 "H!2" "G!1")
                             (lemma "size_del_vert")
                             (inst -1 "H!2" "seq(w!1)(j!2)")
                             (("1"
                               (replace -4 -1 rl)
                               (reveal -5)
                               (case "subgraph?(H!2,G!1)")
                               (("1"
                                 (lemma "trees[T].del_tree_all")
                                 (inst -1 "H!2" "seq(w!1)(j!2)")
                                 (bddsimp)
                                 (("1" (replace -8 -3 rl) (propax))
                                  ("2"
                                   (hide-all-but (-10 -13 -14) -)
                                   (install-rewrites "graphs")
                                   (replace -1 1 lr)
                                   (hide -1 5)
                                   (grind))
                                  ("3"
                                   (reveal -15)
                                   (hide-all-but
                                    (-1
                                     -4
                                     -5
                                     -10
                                     -13
                                     -14
                                     -15
                                     -17
                                     -18
                                     -19
                                     -20
                                     -22)
                                    -)
                                   (hide 1 6)
                                   (install-rewrites "graphs")
                                   (assert))))
                                ("2"
                                 (typepred "w!1")
                                 (reveal -12)
                                 (hide
                                  -4
                                  -5
                                  -6
                                  -7
                                  -9
                                  -10
                                  -13
                                  -17
                                  -22
                                  -25
                                  5)
                                 (install-rewrites "walks")
                                 (expand "subgraph?" 1)
                                 (expand "subset?")
                                 (bddsimp)
                                 (("1"
                                   (skosimp*)
                                   (expand "member")
                                   (replace -7 -4 rl)
                                   (hide -7)
                                   (expand "add")
                                   (expand "member")
                                   (inst -16 "x!3")
                                   (bddsimp)
                                   (expand "walk?")
                                   (bddsimp)
                                   (inst -4 "j!2-1")
                                   (assert (-4 -9))
                                   (replace -5 -4 lr)
                                   (propax))
                                  ("2"
                                   (expand "walk?")
                                   (bddsimp)
                                   (hide -4 -17)
                                   (expand "verts_in?")
                                   (inst -3 "j!2")
                                   (skosimp*)
                                   (inst -1 "x!3")
                                   (expand "member")
                                   (bddsimp)
                                   (replace -6 -3 rl)
                                   (hide -6)
                                   (grind))))))
                              ("2"
                               (hide-all-but (-6 -7 -11) -)
                               (hide 5)
                               (grind))))
                            ("2"
                             (inst 1 "seq(w!1)(j!2)")
                             (("1" (replace -6 1 rl) (assert))
                              ("2"
                               (hide-all-but -5 -)
                               (expand "add" -)
                               (replace -1 1)
                               (beta 1)
                               (propax))))))
                          ("2"
                           (expand "deg" 1)
                           (lemma
                            "finite_sets[doubletons[T].doubleton].card_one")
                           (inst -1 "incident_edges(seq(w!1)(j!2), H!2)")
                           (bddsimp)
                           (hide 1)
                           (inst 1 "ee")
                           (("1"
                             (hide -3 -10 -15 -18 5)
                             (expand "incident_edges" 1)
                             (apply-extensionality 1)
                             (hide 2)
                             (replace -2 1 rl)
                             (replace -4 1 rl)
                             (hide -4 -5 -15)
                             (install-rewrites "graphs")
                             (case "x!3=ee")
                             (("1"
                               (replace -3 1 lr)
                               (replace -1 1 lr)
                               (beta 1)
                               (expand "singleton")
                               (expand "add")
                               (replace -3 1 rl)
                               (expand "dbl" 1)
                               (propax))
                              ("2"
                               (case "singleton(dbl[T](seq(w!1)(j!2 - 1), seq(w!1)(j!2)))(x!3)")
                               (("1" (expand "extend") (assert))
                                ("2"
                                 (expand "extend")
                                 (assert)
                                 (flatten)
                                 (replace -3)
                                 (assert)
                                 (expand "remove")
                                 (flatten))
                                ("3"
                                 (hide-all-but (1 -2))
                                 (inst?)
                                 (("1"
                                   (skosimp*)
                                   (assert)
                                   (typepred "y!1")
                                   (expand "extend")
                                   (assert))
                                  ("2"
                                   (expand "extend")
                                   (expand "singleton")
                                   (propax))))))))
                            ("2"
                             (inst 1 "seq(w!1)(j!2 - 1)"
                              " seq(w!1)(j!2)")
                             (bddsimp)
                             (("1" (assert))
                              ("2"
                               (flatten)
                               (replace -1 -10)
                               (propax))))))))
                        ("2"
                         (hide-all-but (-3 -4 -6 -7 -8) -)
                         (hide 3 4 5)
                         (install-rewrites "graphs")
                         (assert)
                         (grind)
                         (replace -2 1 rl)
                         (grind)
                         (hide -1 -2)
                         (apply-extensionality 1 :hide? t)
                         (("1"
                           (apply-extensionality 1)
                           (("1"
                             (hide 2)
                             (iff 1)
                             (bddsimp)
                             (("1"
                               (typepred "H!1")
                               (inst -1 "x!3")
                               (bddsimp)
                               (inst -2 "seq(w!1)(j!2)")
                               (assert))
                              ("2" (replace -1 2 rl) (assert))))
                            ("2"
                             (skosimp*)
                             (inst 1 "seq(w!1)(j!2 - 1)"
                              " seq(w!1)(j!2)")
                             (replace -1 -4 lr)
                             (propax))))
                          ("2"
                           (apply-extensionality 1)
                           (lemma "sets_lemmas[T].remove_add_member")
                           (inst -1 "vert(H!1)" "seq(w!1)(j!2)")
                           (expand "member")
                           (propax))
                          ("3"
                           (typepred "edges(H!1)")
                           (expand "is_finite")
                           (skosimp*)
                           (inst + "N!1" "f!1")
                           (("1" (skosimp*) (assert) (inst?) (assert))
                            ("2"
                             (skosimp*)
                             (ground)
                             (("1"
                               (typepred "H!1")
                               (inst?)
                               (assert)
                               (inst - "seq(w!1)(j!2)")
                               (assert))
                              ("2"
                               (expand "dbl")
                               (replace -1 + rl)
                               (assert))))))
                          ("4"
                           (skosimp*)
                           (inst + "seq(w!1)(j!2 - 1)" "seq(w!1)(j!2)")
                           (assert))))))
                      ("2" (expand "size") (propax))))
                    ("2" (expand "size") (propax))))
                  ("2" (expand "size") (propax))
                  ("3"
                   (replace -3 1 rl)
                   (hide-all-but (-15) -)
                   (hide 3 5)
                   (typepred "H!1")
                   (skosimp*)
                   (inst-cp -1 "e!1")
                   (bddsimp)
                   (("1"
                     (inst -2 "x!3")
                     (beta -3)
                     (beta 1)
                     (bddsimp)
                     (expand "add")
                     (expand "member")
                     (prop))
                    ("2"
                     (beta -2)
                     (expand "add")
                     (expand "member")
                     (bddsimp)
                     (reveal -7)
                     (grind)
                     (expand "dbl")
                     (replace -2 -3 rl)
                     (beta -3)
                     (hide -2)
                     (bddsimp)
                     (("1" (replace -2 -1 rl) (propax))
                      ("2" (assert))))))))
                ("2"
                 (hide -3 -7 -12 -15 -16 3 5)
                 (replace -1 1 rl)
                 (expand "add")
                 (propax))))
              ("2"
               (inst 1 "seq(w!1)(j!2 - 1)" " seq(w!1)(j!2)")
               (flatten)
               (replace -1 -6 lr)
               (propax))))
            ("3" (replace -4 -7 rl) (propax))))
          ("2"
           (expand "nonempty?" 1)
           (expand "empty?" -1)
           (expand "member" -1)
           (inst -1 "x!1"))))
        ("2" (hide-all-but -3 -) (assert))))
      ("2" (hide-all-but (-2 -3) -) (hide 1 3) (assert))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "sub_tree_k")
   (lemma "sub_tree_k_lemm")
   (bddsimp)
   (assert)
   (hide -1)
   (skosimp*)
   (inst -1 "H!1" "G!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "conn_eq_path[T]")
   (inst? -1)
   (iff -1)
   (bddsimp)
   (hide -2)
   (lemma "sub_tree_all")
   (inst -1 "G!1" "del_edge(G!1, e!1)")
   (bddsimp)
   (("1"
     (lemma "del_edge_num")
     (inst? -1)
     (lift-if)
     (bddsimp)
     (lemma "vert_del_edge")
     (inst? -1)
     (hide -5)
     (lemma "tree_edge_card")
     (inst-cp -1 "G!1")
     (inst -1 "del_edge(G!1, e!1)")
     (bddsimp)
     (install-rewrites "graph_ops")
     (hide -1 -3)
     (case "size(del_edge(G!1, e!1)) = size(G!1)")
     (("1" (expand "num_edges") (assert))
      ("2" (hide-all-but -3 -) (assert))))
    ("2" (hide -1 -2) (assert) (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "G_from")
   (expand "size")
   (expand "verts_of")
   (expand "finseq_appl")
   (expand "path?")
   (flatten)
   (hide -1)
   (expand "finseq_appl")
   (name "foot"
         "{t: T | EXISTS (i: below(length(p!1))): seq(p!1)(i) = t}")
   (lemma "seq_pigeon[T,foot].seq_pigeon_lem")
   (("1"
     (inst -1 "p!1")
     (("1"
       (expand "finseq_appl")
       (bddsimp (-1 -3))
       (case "card(foot) <= length(p!1)")
       (("1" (assert (-1 -3)) (replace -4 1 lr) (assert (-1 -3 1)))
        ("2"
         (hide -1 -2 2)
         (grind)
         (replace -1 1 rl)
         (hide -1)
         (grind)
         (install-rewrites "walks[T]")
         (typepred "p!1")
         (lemma "finite_sets_card_eq[T,T].card_injection")
         (inst -1
          "{t: T | EXISTS (i: below(length(p!1))): seq(p!1)(i) = t}"
          "length(p!1)")
         (("1"
           (bddsimp)
           (inst 1
            "LAMBDA (t:({t: T | EXISTS (i: below(length(p!1))): seq(p!1)(i) = t})):choose(({k:below(length(p!1)) | seq(p!1)(k)=t}))")
           (("1" (expand "injective?") (skosimp*) (hide 2) (grind))
            ("2"
             (hide 2)
             (skosimp*)
             (typepred "t!1")
             (skosimp*)
             (inst -2 "i!1"))))
          ("2"
           (hide 2)
           (inst 1 "length(p!1)"
            "LAMBDA (t:({t: T | EXISTS (i: below(length(p!1))): seq(p!1)(i) = t})):choose(({k: below(length(p!1)) | seq(p!1)(k)=t}))")
           (("1" (grind))
            ("2"
             (skosimp*)
             (typepred "t!1")
             (skosimp*)
             (inst -2 "i!1"))))))))
      ("2"
       (skosimp*)
       (replace -1 1 rl)
       (hide -1 2)
       (beta 1)
       (inst 1 "x1!1"))))
    ("2"
     (replace -1 1 rl)
     (hide -1 2)
     (expand "is_finite")
     (inst 1 "length(p!1)"
      "LAMBDA (t:({t: T | EXISTS (i: below(length(p!1))): seq(p!1)(i) = t})):choose(({k: below(length(p!1)) | seq(p!1)(k)=t}))")
     (("1" (grind))
      ("2"
       (skosimp*)
       (expand "nonempty?")
       (expand "empty?")
       (typepred "t!1")
       (skosimp*)
       (inst -2 "i!1")
       (expand "member")
       (propax))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: rework3.2
script:
  (""
   (skosimp*)
   (lemma "path_ops[T].walk_to_path_from")
   (inst -1 "del_edge(G!1, e!1)" "x!1" "y!1" "w!1")
   (bddsimp (-1 -6))
   (skosimp*)
   (lemma "walks[T].edge_to_walk")
   (inst -1 "G!1" "x!1" "y!1")
   (bddsimp)
   (("1"
     (hide -2)
     (case "path_from?(G!1,gen_seq2(G!1, x!1, y!1),x!1,y!1)")
     (("1"
       (case "path_from?(G!1, p!1, x!1, y!1)")
       (("1"
         (lemma "tree_paths[T].tree_one_path")
         (inst -1 "G!1" "p!1" "gen_seq2(G!1, x!1, y!1)" "x!1" "y!1")
         (bddsimp)
         (typepred "p!1")
         (expand "path_from?" -7)
         (flatten)
         (expand "path?")
         (flatten)
         (hide -3 -4 -6 -8 -9)
         (replace -3 -4)
         (hide -2 -3)
         (install-rewrites "walks[T]")
         (expand "walk?")
         (flatten)
         (expand "finseq_appl")
         (inst -3 "0")
         (bddsimp)
         (("1"
           (hide -2)
           (expand "gen_seq2")
           (expand "edge?")
           (expand "del_edge")
           (expand "remove")
           (bddsimp)
           (expand "member")
           (grind)
           (install-rewrites "graphs[T]")
           (grind)
           (typepred "G!1")
           (install-rewrites "graphs")
           (lemma "edge_has_2_verts")
           (inst?)
           (assert))
          ("2" (assert))))
        ("2"
         (hide -1 -2 -4)
         (install-rewrites "paths[T]")
         (expand "path_from?")
         (bddsimp)
         (expand "path?")
         (bddsimp)
         (expand "walk?")
         (bddsimp)
         (("1"
           (expand "finseq_appl")
           (skosimp*)
           (inst -5 "n!1")
           (bddsimp)
           (lemma "graph_ops[T].del_edge_lem2")
           (inst -1 "G!1" "e!1"
            "dbl[T](seq(p!1)(n!1), seq(p!1)(1 + n!1))")
           (("1"
             (bddsimp (-1 -6))
             (("1"
               (inst -4 "n!1" "n!1+1")
               (("1" (assert -4) (hide-all-but -1 -) (grind))
                ("2" (assert))))
              ("2" (hide-all-but -1 -) (grind))))
            ("2"
             (inst 1 "seq(p!1)(n!1)" "seq(p!1)(1 + n!1)")
             (assert -2)
             (lemma "graph_ops[T].del_edge_lem2")
             (inst -1 "G!1" "e!1"
              "dbl[T](seq(p!1)(n!1), seq(p!1)(1 + n!1))")
             (("1"
               (bddsimp -1 -7)
               (("1" (inst -4 "n!1" "n!1+1") (assert -4))
                ("2" (assert))))
              ("2"
               (inst 1 "seq(p!1)(n!1)" "seq(p!1)(n!1+1)")
               (inst -3 "n!1" "n!1+1")
               (assert))))))
          ("2"
           (expand "verts_in?")
           (skosimp*)
           (inst -3 "i!1")
           (lemma "vert_del_edge")
           (inst? -1)
           (replace -1 -4)
           (propax))))))
      ("2"
       (hide -2 -3)
       (expand "path_from?")
       (expand "path?")
       (expand "finseq_appl")
       (bddsimp)
       (("1" (grind)) ("2" (grind))))))
    ("2"
     (hide -1 -2 -3)
     (grind)
     (lemma "edge_has_2_verts")
     (inst?)
     (inst -1 "e!1")
     (assert))
    ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "finite_sets[T].card_diff_subset")
   (inst? -1)
   (bddsimp)
   (lemma "finite_sets[T].nonempty_card")
   (inst -1 "difference(B!1,A!1)")
   (flatten)
   (hide -2)
   (expand "nonempty?" -1)
   (bddsimp)
   (("1"
     (expand "empty?" -1)
     (inst -1 "x!1")
     (expand "member" 1)
     (expand "difference" 1)
     (expand "member" 1)
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: Partial
script:
  (""
   (skosimp*)
   (inst 1 "subgraph(G!1,reachable(G!1,x!1))")
   (bddsimp)
   (("1"
     (skosimp*)
     (typepred "y!1")
     (expand "deg")
     (case "incident_edges(y!1, G!1) =
                                              incident_edges(y!1, subgraph(G!1, reachable(G!1, x!1)))")
     (("1"
       (auto-rewrite-theories "finite_sets[doubletons[T].doubleton]")
       (replace -1 1)
       (propax))
      ("2"
       (hide 2)
       (expand "incident_edges")
       (apply-extensionality 1 :hide? t)
       (iff 1)
       (bddsimp)
       (("1"
         (expand "reachable")
         (expand "subgraph")
         (bddsimp)
         (skosimp*)
         (bddsimp)
         (("1"
           (case "y!1=x!3")
           (("1" (replace -1 1 rl) (inst 1 "w!1"))
            ("2"
             (inst 2 "add1(w!1,x!3)")
             (("1"
               (expand "walk_from?")
               (assert)
               (bddsimp)
               (("1"
                 (lemma "walk?_add1")
                 (inst -1 "G!1" "w!1" "x!3")
                 (bddsimp)
                 (("1"
                   (replace -7 1)
                   (hide -1 -6 -7 2)
                   (grind)
                   (lemma "edge_has_2_verts")
                   (inst -1 "x!2" "x!3" "y!1")
                   (bddsimp)
                   (("1" (assert)) ("2" (assert))))
                  ("2"
                   (typepred "G!1")
                   (inst -1 "x!2")
                   (bddsimp)
                   (inst -2 "x!3")
                   (assert))))
                ("2" (assert) (install-rewrites "walks") (assert))
                ("3" (assert) (hide -1 -2 -3 -7) (grind))))
              ("2"
               (expand "walk_from?")
               (bddsimp)
               (expand "walk?")
               (expand "verts_in?")
               (skosimp*)
               (typepred "i!1")
               (expand "add1" -1)
               (case "i!1=length(w!1)")
               (("1"
                 (replace -1 1)
                 (case "seq(add1[T](w!1, x!3))(length(w!1))=x!3")
                 (("1"
                   (replace -1 1)
                   (typepred "G!1")
                   (inst -1 "x!2")
                   (bddsimp)
                   (inst -2 "x!3")
                   (bddsimp))
                  ("2" (hide -3 -9 2) (grind))))
                ("2"
                 (inst -8 "i!1-1")
                 (("1"
                   (bddsimp)
                   (("1"
                     (assert -8)
                     (grind)
                     (typepred "G!1")
                     (inst -1 "dbl[T](seq(w!1)(i!1 - 1), seq(w!1)(i!1))")
                     (bddsimp)
                     (inst -2 "seq(w!1)(i!1)")
                     (assert))
                    ("2" (install-rewrites "walks") (assert))))
                  ("2" (install-rewrites "walks") (assert))))))))))
          ("2"
           (typepred "x!1")
           (typepred "G!1")
           (inst -1 "x!2")
           (bddsimp)
           (inst -2 "x!3")
           (prop))))
        ("2" (grind))))))
    ("2"
     (expand "reachable")
     (expand "subgraph")
     (typepred "x!1")
     (inst 1 "gen_seq1(G!1,x!1)")
     (grind))
    ("3" (lemma "reachable_conn") (inst? -1))
    ("4"
     (install-rewrites "subgraphs[T]")
     (stop-rewrite)
     (auto-rewrite-theory "subgraphs[T]")
     (typepred "x!1")
     (assert)
     (bddsimp)
     (("1"
       (install-rewrites "finite_sets[doubletons[T].doubleton]")
       (assert)
       (grind))
      ("2"
       (assert)
       (install-rewrites "finite_sets[T]")
       (assert)
       (grind))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: try
script:
  (""
   (skosimp*)
   (expand "size")
   (lemma "set_card_less")
   (inst -1 "v!1" "vert(Bush(Tr!1, z!1, f!1))"
    "vert(Bush(Tr!1, v!1, e!1))")
   (bddsimp)
   (("1"
     (hide 1)
     (expand "Bush")
     (expand "subgraph")
     (expand "reachable")
     (flatten)
     (skosimp*)
     (lemma "path_ops[T].walk_to_path_from")
     (inst? -1)
     (bddsimp)
     (skosimp*)
     (hide -1)
     (lemma "walks[T].edge_to_walk")
     (typepred "f!1")
     (expand "incident_edges")
     (flatten)
     (lemma "path?_gen_seq2")
     (inst -1 "Tr!1" "z!1" "v!1")
     (typepred "Tr!1")
     (inst -1 "f!1")
     (bddsimp (-1 -5))
     (inst-cp -2 "z!1")
     (inst -2 "v!1")
     (bddsimp (-2 -11))
     (bddsimp (-4 -8))
     (bddsimp (-2 -4 -7))
     (("1"
       (hide -9)
       (lemma "tree_paths[T].tree_one_path")
       (inst -1 "Tr!1" "p!1" "gen_seq2(Tr!1, z!1, v!1)" "z!1" "v!1")
       (bddsimp)
       (("1"
         (typepred "e!1")
         (skolem! -1)
         (skolem! -11)
         (flatten)
         (expand "path_from?")
         (flatten)
         (expand "incident_edges")
         (flatten)
         (hide -8)
         (expand "path?")
         (flatten)
         (hide -13)
         (replace -5 -12)
         (expand "walk?")
         (flatten)
         (inst -13 "0")
         (bddsimp)
         (("1"
           (expand "edge?")
           (flatten)
           (hide -5 -12)
           (expand "gen_seq2")
           (hide -1 -2 -3 -4 -12 -13)
           (install-rewrites "graph_ops[T]")
           (assert)
           (flatten)
           (hide -6 1 2)
           (grind)
           (apply-extensionality 2 :hide? t)
           (reveal -2)
           (reveal 2)
           (hide -2 -3 -6 -7)
           (grind))
          ("2"
           (hide-all-but nil -)
           (assert)
           (install-rewrites "walks[T]")
           (assert))))
        ("2"
         (hide -1 -5 -6 -7 -9 -10)
         (expand "path_from?")
         (install-rewrites "walks[T]")
         (assert))
        ("3"
         (hide -1 -4 -10)
         (install-rewrites "paths[T]")
         (expand "path_from?")
         (flatten)
         (bddsimp)
         (expand "path?" 1)
         (bddsimp)
         (("1"
           (skosimp*)
           (expand "path?")
           (flatten)
           (inst? -10)
           (inst -10 "j!1")
           (bddsimp)
           (("1" (assert)) ("2" (assert))))
          ("2"
           (expand "walk?")
           (bddsimp)
           (("1"
             (skosimp*)
             (expand "path?")
             (flatten)
             (hide -10)
             (expand "walk?")
             (flatten)
             (inst -10 "n!1")
             (bddsimp)
             (lemma "del_edge_lem2")
             (inst -1 "Tr!1" "f!1"
              "dbl[T](seq(p!1)(n!1), seq(p!1)(1 + n!1))")
             (("1"
               (bddsimp (-1 -11))
               (("1"
                 (hide-all-but -1 -)
                 (grind)
                 (reveal -13)
                 (typepred "n!1")
                 (reveal -2)
                 (inst -3 "n!1" "n!1+1")
                 (("1" (assert)) ("2" (assert))))
                ("2" (assert) (hide -3 -4 -5 -6 -7 2) (bddsimp))))
              ("2"
               (reveal -3)
               (inst 1 "seq(p!1)(n!1)" "seq(p!1)(n!1+1)")
               (("1"
                 (inst -1 "n!1" "n!1+1")
                 (("1"
                   (bddsimp)
                   (("1" (assert)) ("2" (assert)) ("3" (assert))
                    ("4" (assert))))
                  ("2" (assert))))
                ("2" (assert))))))
            ("2"
             (expand "verts_in?")
             (skosimp*)
             (expand "path?")
             (flatten)
             (expand "walk?")
             (flatten)
             (hide -9 -10)
             (lemma "vert_del_edge")
             (inst -1 "Tr!1" "f!1")
             (expand "verts_in?")
             (inst -9 "i!1")
             (replace -1 1 rl)
             (propax))))))))
      ("2"
       (expand "edge?")
       (bddsimp)
       (("1"
         (hide -8)
         (skolem! -7)
         (flatten)
         (hide -8)
         (hide -6)
         (hide -7)
         (install-rewrites "graphs[T]")
         (assert)
         (replace -6 -3)
         (replace -6 -4)
         (replace -6 -5)
         (hide -6)
         (typepred "e!1")
         (expand "incident_edges")
         (flatten)
         (hide -1 -2)
         (case "v!1=z!1")
         (("1" (replace -1 -2) (propax))
          ("2" (hide -1) (grind) (lemma "dbl_comm") (inst? -1) (grind))))
        ("2"
         (typepred "e!1")
         (expand "incident_edges")
         (flatten)
         (replace -6 1)
         (propax))))))
    ("2"
     (hide 2)
     (hide 2)
     (expand "Bush")
     (expand "subgraph")
     (expand "reachable")
     (bddsimp)
     (("1"
       (inst 1 "gen_seq1(del_edge(Tr!1, e!1),v!1)")
       (("1"
         (expand "walk_from?")
         (bddsimp)
         (("1"
           (lemma "gen_seq1_is_walk")
           (inst -1 "del_edge(Tr!1, e!1)" "v!1")
           (bddsimp)
           (hide 2)
           (typepred "v!1")
           (lemma "vert_del_edge")
           (inst -1 "Tr!1" "e!1")
           (replace -1 -2 rl)
           (propax))
          ("2" (grind)) ("3" (grind))))
        ("2"
         (typepred "v!1")
         (lemma "vert_del_edge")
         (inst -1 "Tr!1" "e!1")
         (replace -1 -2 rl)
         (propax))))
      ("2"
       (typepred "v!1")
       (lemma "vert_del_edge")
       (inst -1 "Tr!1" "e!1")
       (replace -1 -2 rl)
       (propax))))
    ("3"
     (hide 2)
     (expand "subset?")
     (skosimp*)
     (expand "member")
     (expand "Bush" 1)
     (expand "subgraph")
     (bddsimp)
     (("1"
       (expand "reachable")
       (bddsimp)
       (("1"
         (expand "Bush")
         (expand "subgraph")
         (flatten)
         (expand "reachable")
         (flatten)
         (skolem! -3)
         (inst 1 "rev(add1(rev(w!1),v!1))")
         (("1"
           (install-rewrites "walks[T]")
           (expand "walk_from?" 1)
           (bddsimp)
           (("1"
             (lemma "walk?_rev")
             (inst -1 "del_edge(Tr!1, e!1)" "add1(rev(w!1), v!1)")
             (bddsimp)
             (lemma "walk?_add1")
             (inst -1 "del_edge(Tr!1, e!1)" "rev(w!1)" "v!1")
             (bddsimp)
             (("1"
               (hide 2 3)
               (lemma "del_edge_lem3")
               (expand "walk_from?")
               (flatten)
               (expand "rev")
               (replace -4 1)
               (inst -1 "Tr!1" "e!1" "dbl[T](z!1,v!1)")
               (("1"
                 (typepred "f!1")
                 (expand "incident_edges")
                 (flatten)
                 (skolem! -1)
                 (flatten)
                 (case " f!1 = dbl[T](z!1,v!1)")
                 (("1"
                   (typepred "e!1")
                   (expand "incident_edges")
                   (flatten)
                   (bddsimp)
                   (("1"
                     (hide -1 -2 -4 -5 -7 -9 -10 -11 -12 -13 1)
                     (grind))
                    ("2"
                     (hide-all-but nil -)
                     (hide 3)
                     (grind)
                     (replace -1 2 rl)
                     (assert))
                    ("3" (hide-all-but (-4 -6) -) (hide 3) (grind))))
                  ("2"
                   (hide -2 -4 -6 -7 -8 -9 3)
                   (typepred "e!1")
                   (expand "incident_edges")
                   (flatten)
                   (hide -1 -2)
                   (grind)
                   (lemma "dbl_comm")
                   (inst -1 "x!2" "y!1"))))
                ("2"
                 (inst 1 "z!1" "v!1")
                 (assert 1)
                 (hide -4 -5 -6 1)
                 (typepred "e!1")
                 (expand "incident_edges")
                 (flatten)
                 (replace -4 -3 rl)
                 (propax))))
              ("2"
               (typepred "f!1")
               (expand "incident_edges")
               (flatten)
               (typepred "Tr!1")
               (inst -1 "f!1")
               (bddsimp)
               (inst -2 "v!1")
               (bddsimp)
               (lemma "vert_del_edge")
               (inst -1 "Tr!1" "e!1")
               (replace -1 1)
               (propax))
              ("3"
               (typepred "w!1")
               (case "walk?(del_edge(Tr!1, e!1), w!1)")
               (("1"
                 (lemma "walk?_rev")
                 (inst -1 "del_edge(Tr!1, e!1)" "w!1")
                 (bddsimp))
                ("2"
                 (hide 2 3 4)
                 (expand "walk?" 1)
                 (bddsimp)
                 (("1"
                   (skosimp*)
                   (lemma "del_edge_lem3")
                   (inst -1 "Tr!1" "e!1"
                    "dbl[T](seq(w!1)(n!1), seq(w!1)(1 + n!1))")
                   (("1"
                     (bddsimp)
                     (("1"
                       (expand "walk_from?")
                       (flatten)
                       (expand "walk?")
                       (inst -9 "n!1")
                       (assert)
                       (flatten)
                       (bddsimp))
                      ("2"
                       (lemma "del_edge_lem3")
                       (inst -1 "Tr!1" "e!1"
                        "dbl[T](seq(w!1)(n!1), seq(w!1)(1 + n!1))")
                       (("1"
                         (typepred "w!1")
                         (expand "walk_from?")
                         (flatten)
                         (typepred "v!1")
                         (typepred "z!1")
                         (typepred "f!1")
                         (expand "incident_edges")
                         (flatten)
                         (typepred "e!1")
                         (expand "incident_edges")
                         (flatten)
                         (lemma "edge_has_2_verts")
                         (inst -1 "f!1" "v!1" "z!1")
                         (bddsimp (-1 -7 -22))
                         (("1"
                           (replace -14 -6 rl)
                           (typepred "Tr!1")
                           (lemma "path_gap")
                           (inst -1 "Tr!1" "f!1" "w!1^(0,n!1)" "z!1"
                            "v!1")
                           (("1"
                             (bddsimp -1 -3 -11 -4 -5)
                             (("1"
                               (assert -1 -9 -17 2)
                               (replace -17 -9 lr)
                               (replace -1 -9 rl)
                               (propax))
                              ("2"
                               (hide -1 -2 -6 -9 -15 -21 -23 2 3)
                               (install-rewrites "walks[T]")
                               (expand "walk_from?")
                               (bddsimp)
                               (("1"
                                 (lemma "walk?_caret")
                                 (inst
                                  -1
                                  "del_edge(Tr!1, f!1)"
                                  "0"
                                  "n!1"
                                  "w!1")
                                 (bddsimp)
                                 (("1" (assert))
                                  ("2" (typepred "n!1") (assert))))
                                ("2"
                                 (reveal 2)
                                 (hide -1 -2 -3 -6 7- -8 -10 -13 -15)
                                 (grind)
                                 (typepred "w!1")
                                 (lemma "path_gap")
                                 (inst
                                  -1
                                  "Tr!1"
                                  "f!1"
                                  "w!1^(0,n!1+1)"
                                  "z!1"
                                  "v!1")
                                 (typepred "Tr!1")
                                 (hide -1)
                                 (reveal -1 -2 -4 -9)
                                 (hide -4)
                                 (hide -7)
                                 (reveal -8)
                                 (bddsimp)
                                 (("1"
                                   (replace -6 -9 rl)
                                   (replace -9 -11 rl)
                                   (replace -11 1 rl)
                                   (hide-all-but -2 -)
                                   (grind))
                                  ("2"
                                   (lemma "walk?_caret")
                                   (inst
                                    -1
                                    "del_edge(Tr!1, f!1)"
                                    "0"
                                    "n!1+1"
                                    "w!1")
                                   (stop-rewrite)
                                   (bddsimp)
                                   (("1"
                                     (expand "walk_from?")
                                     (assert)
                                     (expand "^")
                                     (expand min)
                                     (assert))
                                    ("2" (assert))
                                    ("3" (assert))))))
                                ("3" (expand "^") (propax))))
                              ("3" (propax)) ("4" (propax))
                              ("5" (propax)) ("6" (propax))))
                            ("2"
                             (expand "^")
                             (expand min)
                             (typepred n!1)
                             (hide-all-but (-1 -14 1))
                             (assert)
                             (lift-if)
                             (assert))))
                          ("2" (hide-all-but -5 -) (grind))))
                        ("2"
                         (inst 1 "seq(w!1)(n!1)" "seq(w!1)(1 + n!1)")
                         (hide -4 -5 -6 -7 2)
                         (typepred "e!1")
                         (skosimp*)
                         (lemma "edge_has_2_verts")
                         (lemma "dbl_eq")
                         (inst -1 "seq(w!1)(n!1)" "x!2" "y!1"
                          "seq(w!1)(1 + n!1)")
                         (replace -6 -3 rl)
                         (assert)
                         (replace -5 -1 rl)
                         (bddsimp)
                         (assert))))
                      ("3"
                       (typepred "n!1")
                       (hide -4 -5 -6 -8 2)
                       (assert)
                       (grind))))
                    ("2"
                     (inst 1 "seq(w!1)(n!1)" "seq(w!1)(1 + n!1)")
                     (typepred "w!1")
                     (expand "walk_from?")
                     (bddsimp)
                     (expand "walk?")
                     (inst -9 "n!1")
                     (assert (-4 -9))
                     (prop))))
                  ("2"
                   (expand "verts_in?")
                   (skosimp*)
                   (inst -2 "i!1")
                   (lemma "vert_del_edge")
                   (lemma "vert_del_edge")
                   (inst -1 "Tr!1" "e!1")
                   (inst -2 "Tr!1" "f!1")
                   (replace -1 1)
                   (replace -2 -4 lr)
                   (propax))))))))
            ("2" (assert) (assert)) ("3" (assert))))
          ("2"
           (assert)
           (bddsimp)
           (("1"
             (install-rewrites "walks[T]")
             (assert)
             (skosimp*)
             (assert 1)
             (typepred "i!1")
             (bddsimp)
             (inst -6 "i!1-1")
             (grind))
            ("2" (assert) (install-rewrites "walks[T]") (assert))))
          ("3" (install-rewrites "walks[T]") (assert))))
        ("2" (install-rewrites "walks[T]") (assert) (assert))))
      ("2"
       (expand "Bush")
       (expand "reachable")
       (expand "subgraph")
       (flatten))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "path_from?")
   (flatten)
   (expand "from?")
   (flatten)
   (replace -4 -3 lr)
   (assert -3)
   (replace -3 -2 lr)
   (expand "fixed?")
   (skosimp*)
   (inst -5 "x!1")
   (("1" (assert))
    ("2"
     (typepred "w!1")
     (hide -3 -4 2)
     (expand "path?")
     (flatten)
     (hide -3)
     (reveal (-2 -3))
     (expand "walk?")
     (flatten)
     (expand "verts_in?")
     (inst -4 "0")
     (replace -2 -4 lr)
     (replace -1 -4 lr)
     (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "finseq_appl")
   (replace -2 -3 lr)
   (assert -3)
   (expand "path_from?")
   (flatten)
   (expand "from?")
   (flatten)
   (replace -4 -3 lr)
   (assert)
   (replace -2 -3 rl)
   (expand "fixed?")
   (flatten)
   (inst 1 "seq(w!1)(1)" "seq(w!1)(0)")
   (("1"
     (assert)
     (expand "path?")
     (flatten)
     (hide-all-but -1 -)
     (install-rewrites "walks[T]")
     (assert)
     (flatten)
     (inst -2 "0")
     (typepred "w!1")
     (reveal -5)
     (assert (-1 -4))
     (assert)
     (prop)
     (("1" (assert)) ("2" (assert) (grind) (rewrite "dbl_comm"))))
    ("2"
     (typepred "w!1")
     (install-rewrites "paths[T]")
     (assert)
     (bddsimp)
     (inst -2 "0"))
    ("3" (install-rewrites "paths[T]") (assert) (bddsimp) (inst -1 "1"))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: V3.2
script:
  (""
   (skosimp*)
   (expand "finseq_appl")
   (inst 1 "w!1^(1,length(w!1)-1)")
   (("1"
     (bddsimp)
     (("1" (expand* "^" min empty_seq) (assert))
      ("2"
       (lemma "path_from?_caret")
       (inst -1 "Tr!1" "1" "length(w!1)-1" "w!1" "x!1" "phi!1(x!1)")
       (assert)
       (expand "path_from?")
       (expand "path?")
       (flatten)
       (hide -2)
       (install-rewrites "walks[T]")
       (assert)
       (flatten)
       (case "length(w!1)=2")
       (("1"
         (replace -1 * lr)
         (assert)
         (hide -3)
         (inst -10 "seq(w!1)(1)")
         (("1" (assert)) ("2" (assert) (inst -3 "1"))))
        ("2" (assert))))
      ("3"
       (expand "path_from?")
       (expand "path?")
       (flatten)
       (expand "from?")
       (flatten)
       (expand "finseq_appl")
       (expand "walk?")
       (flatten)
       (expand "verts_in?")
       (inst -1 "0")
       (replace -4 -1 lr)
       (hide -2 -3)
       (install-rewrites "walks[T]")
       (assert))
      ("4"
       (lemma "path_from?_caret")
       (inst -1 "Tr!1" "1" "length(w!1)-1" "w!1" "x!1" "phi!1(x!1)")
       (assert))))
    ("2"
     (install-rewrites "walks[T]")
     (assert)
     (flatten)
     (hide -2)
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "w!1^(1,length(w!1)-2)")
   (("1"
     (bddsimp)
     (("1"
       (expand* "^" min empty_seq)
       (assert)
       (expand "finseq_appl")
       (propax))
      ("2"
       (lemma "path_from?_caret")
       (inst -1 "Tr!1" "1" "length(w!1)-2" "w!1" "x!1" "phi!1(x!1)")
       (("1" (assert) (expand* "^" min empty_seq) (assert))
        ("2"
         (expand "path_from?")
         (expand "path?")
         (flatten)
         (install-rewrites "walks[T]")
         (assert))))
      ("3"
       (expand "path_from?")
       (flatten)
       (lemma "path?_caret")
       (inst -1 "Tr!1" "1" "length(w!1)-2" "w!1")
       (("1"
         (assert)
         (hide -1 -2)
         (install-rewrites "walks[T]")
         (assert))
        ("2" (assert))))))
    ("2" (expand* "^" min empty_seq) (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "Tr!1")
   (lemma "tree_nonempty")
   (inst? -1)
   (bddsimp)
   (expand "empty?")
   (expand "empty?")
   (expand "member")
   (skosimp*)
   (lemma "graph_path_conn[T].tree_has_walk")
   (inst? -1)
   (inst -1 "phi!1(x!1)")
   (bddsimp)
   (("1"
     (lemma "path_ops[T].walk_to_path_from")
     (skosimp*)
     (inst? -1)
     (bddsimp)
     (skosimp*)
     (inst 1 "G_from(Tr!1,p!1)" "_")
     (("1"
       (inst 1
        "Bush(Tr!1,p!1(length(p!1)-1),dbl(p!1(length(p!1)-2),p!1(length(p!1)-1)))")
       (("1"
         (expand "Fox")
         (inst 1 "p!1")
         (assert)
         (bddsimp)
         (("1"
           (expand "finseq_appl")
           (expand "path_from?")
           (flatten)
           (install-rewrites "walks")
           (hide -1 -2 -6)
           (hide -2 2)
           (assert)
           (flatten)
           (replace -1 -2 rl)
           (assert))
          ("2"
           (lemma "walk_from_l")
           (hide -2)
           (inst -1 "p!1" "x!1" "phi!1(x!1)")
           (bddsimp)
           (("1" (assert))
            ("2"
             (hide-all-but nil -)
             (expand "fixed?")
             (skosimp*)
             (assert)
             (inst -2 "x!1")
             (assert))
            ("3"
             (hide -2 -3 -4 3)
             (install-rewrites "paths")
             (assert)
             (assert)
             (bddsimp))))
          ("3"
           (hide -1 -3 -5 2)
           (install-rewrites "paths")
           (expand "path_from?")
           (prop))))
        ("2"
         (expand "finseq_appl")
         (bddsimp)
         (("1"
           (hide -3 -5)
           (install-rewrites "paths")
           (assert)
           (bddsimp)
           (inst -4 "length(p!1) - 2")
           (("1" (assert -4))
            ("2"
             (lemma "walk_from_l")
             (inst -1 "p!1" "x!1" "phi!1(x!1)")
             (hide -2 -3 -4 -5)
             (inst -5 "x!1")
             (hide 4)
             (assert))))
          ("2"
           (hide-all-but nil -)
           (hide 2)
           (grind)
           (("1"
             (reveal -2)
             (expand "path_from?")
             (expand "path?")
             (bddsimp)
             (expand "finseq_appl")
             (inst -2 "length(p!1)-2" "length(p!1)-1")
             (("1" (assert))
              ("2"
               (reveal 2)
               (lemma "walk_from_l")
               (inst? -1)
               (expand "fixed?")
               (bddsimp)
               (("1"
                 (inst -3 "x!1")
                 (("1" (hide -4 -5 1) (assert)) ("2" (grind))))
                ("2" (inst? -2) (grind))))))
            ("2"
             (reveal 2)
             (lemma "walk_from_l")
             (inst? -1)
             (inst -1 "x!1" "phi!1(x!1)")
             (reveal -4)
             (expand "path_from?")
             (flatten)
             (expand "fixed?")
             (bddsimp)
             (("1" (inst -4 "x!1") (("1" (assert)) ("2" (grind))))
              ("2" (inst? -3) (grind))))))))
        ("3"
         (lemma "walk_from_l")
         (inst? -1)
         (inst -1 "x!1" "phi!1(x!1)")
         (hide -2)
         (expand "path_from?")
         (flatten)
         (expand "fixed?")
         (bddsimp)
         (("1" (inst? -7) (assert)) ("2" (inst? -6))))
        ("4"
         (hide -1)
         (expand "path_from?")
         (expand "path?")
         (flatten)
         (hide -2)
         (expand "walk?")
         (flatten)
         (hide -2)
         (expand "verts_in?")
         (inst -1 "length(p!1)-1")
         (assert)
         (expand "finseq_appl")
         (propax))))
      ("2" (expand "path_from?") (expand "path?") (flatten))))
    ("2" (expand "fixed?") (bddsimp) (inst -4 "x!1"))
    ("3"
     (typepred "phi!1")
     (hide -2 2 3)
     (assert)
     (inst -1 "x!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: Works3.2
script:
  (""
   (skosimp*)
   (expand "Fox" -1)
   (skosimp*)
   (expand "finseq_appl")
   (case "phi!1(w!1(1))=w!1(length(w!1)-1)")
   (("1"
     (lemma "stuck_hound")
     (expand "finseq_appl")
     (inst -1 "w!1" "seq(w!1)(0)" "Tr!1" "phi!1")
     (expand "path_from?")
     (replace -5 -1)
     (bddsimp (-1 -3 -4))
     (("1"
       (skosimp*)
       (inst 1 "G_from(Tr!1,p!1)" "H!1")
       (("1"
         (bddsimp)
         (("1"
           (hide -6)
           (lemma "size_subgraph_path")
           (inst-cp -1 "Tr!1" "w!1")
           (bddsimp (-2 -3))
           (inst -3 "Tr!1" "p!1")
           (bddsimp (-5 -3))
           (expand "lsth")
           (assert))
          ("2"
           (expand "Fox")
           (expand "finseq_appl")
           (inst 2 "p!1")
           (typepred "p!1")
           (hide -7)
           (hide -7)
           (expand "from?")
           (flatten)
           (copy -5)
           (copy -7)
           (replace -2 -1 rl)
           (replace -8 -10 rl)
           (case "length(p!1)=1")
           (("1"
             (replace -1 -2 lr)
             (assert -2)
             (hide 2)
             (expand "fixed?")
             (skosimp*)
             (inst -11 "seq(p!1)(0)")
             (("1" (assert (-2 -11)))
              ("2" (hide-all-but (-1 -4 -7) -) (hide 2) (grind))))
            ("2"
             (case "length(p!1)>1")
             (("1"
               (case "phi!1(seq(p!1)(0))=seq(p!1)(length(p!1) - 1)")
               (("1"
                 (replace -12 -15 rl)
                 (reveal -1)
                 (replace -1 -16 rl)
                 (assert))
                ("2" (assert (-2 1)))))
              ("2" (hide-all-but (-3) -) (hide 3 4) (assert))))))))
        ("2" (hide-all-but (-3) -) (hide 2) (expand "path?") (assert))))
      ("2" (propax))
      ("3"
       (hide-all-but (-1 -2) -)
       (hide 2 3)
       (assert)
       (install-rewrites "walks[T]")
       (assert))))
    ("2"
     (expand "finseq_appl")
     (case "phi!1(w!1`seq(1)) = w!1`seq(length(w!1) - 2)")
     (("1"
       (case "length(w!1)=2")
       (("1"
         (lemma "back_hound")
         (inst -1 "w!1" "seq(w!1)(0)" "Tr!1" "phi!1")
         (expand "path_from?")
         (expand "finseq_appl")
         (bddsimp)
         (hide -6 -7 2 4)
         (assert)
         (install-rewrites "walks[T]")
         (assert))
        ("2"
         (lemma "whole_hound")
         (expand "finseq_appl")
         (inst -1 "w!1" "w!1`seq(0)" "Tr!1" "phi!1")
         (bddsimp)
         (("1"
           (skosimp*)
           (typepred "p!1")
           (inst 3 "G_from(Tr!1,p!1)"
            "Bush(Tr!1, seq(w!1)(length(w!1) - 2), dbl(seq(w!1)(length(w!1) - 3), seq(w!1)(length(w!1) - 2)))")
           (("1"
             (bddsimp)
             (("1"
               (expand "lsth")
               (flatten)
               (lemma "size_subgraph_path")
               (inst-cp -1 "Tr!1" "w!1")
               (hide -7)
               (inst -1 "Tr!1" "p!1")
               (expand "path_from?")
               (flatten)
               (bddsimp (-1 -2 -5 -8))
               (assert))
              ("2"
               (expand "Fox")
               (expand "finseq_appl")
               (inst 3 "p!1")
               (expand "path_from?")
               (flatten)
               (case "length(p!1)=1")
               (("1"
                 (expand "from?")
                 (flatten)
                 (replace -5 -6 rl)
                 (replace -1 -6 rl)
                 (assert -6)
                 (hide -8 -13 3)
                 (expand "fixed?")
                 (flatten)
                 (inst -12 "seq(p!1)(0)")
                 (("1" (assert (-6 -12)))
                  ("2"
                   (hide-all-but (-1 -4 1))
                   (expand "path?")
                   (expand "finseq_appl")
                   (assert)
                   (expand "walk?")
                   (assert)
                   (expand "verts_in?")
                   (grind))))
                ("2"
                 (case "length(p!1)>1")
                 (("1"
                   (assert)
                   (expand "from?")
                   (flatten)
                   (bddsimp)
                   (("1"
                     (replace -3 -6)
                     (replace -6 4 rl)
                     (replace -8 4 rl)
                     (propax))
                    ("2" (replace -5 4 lr) (assert (-6 4)))))
                  ("2" (hide-all-but -1 -) (hide 4 5 6) (assert))))))
              ("3"
               (lemma "size_subgraph_path")
               (inst-cp -1 "Tr!1" "w!1")
               (inst -1 "Tr!1" "p!1")
               (expand "path_from?")
               (flatten)
               (bddsimp (-1 -2 -5 -8))
               (replace -11 4 lr)
               (replace -4 4 lr)
               (replace -2 4 lr)
               (expand "lsth")
               (flatten))
              ("4"
               (case "length(p!1)=1")
               (("1"
                 (hide -10 4)
                 (expand "path_from?")
                 (flatten)
                 (expand "from?")
                 (flatten)
                 (replace -1 -6 lr)
                 (assert -6)
                 (replace -5 -6 rl)
                 (expand "fixed?")
                 (skosimp*)
                 (inst -12 "seq(p!1)(0)")
                 (("1" (assert (-6 -12)))
                  ("2" (hide-all-but (-1 -4 1)) (grind))))
                ("2" (assert))))))
            ("2" (hide-all-but (-6 -7 1 2)) (grind))
            ("3" (hide-all-but (-7 1 2)) (assert))
            ("4" (hide-all-but (-6 -7 1 2)) (grind))
            ("5" (hide-all-but (-7 1 2)) (assert))
            ("6" (expand "path_from?") (expand "path?") (assert))))
          ("2" (assert))
          ("3"
           (replace -4 1 lr)
           (hide -1 -4 -5 -6 3 4 5)
           (install-rewrites "paths[T]")
           (assert))))))
      ("2"
       (lemma "path?_gen_seq2")
       (inst -1 "Tr!1" "phi!1(seq(w!1)(1))" "phi!1(seq(w!1)(0))")
       (name "qq"
             "walks[T].gen_seq2(Tr!1, phi!1(seq(w!1)(1)), phi!1(seq(w!1)(0)))")
       (("1"
         (case "qq=gen_seq2(Tr!1, phi!1(seq(w!1)(1)), phi!1(seq(w!1)(0)))")
         (("1"
           (replace -1 -3 rl)
           (hide -1 -2)
           (expand "path?" -2)
           (flatten)
           (expand "walk?")
           (flatten)
           (expand "finseq_appl")
           (inst -3 "0")
           (assert (-3 -5))
           (copy 2)
           (replace -6 1 rl)
           (typepred "phi!1")
           (lemma "edge?_comm")
           (inst -1 "Tr!1" "seq(w!1)(1)" "seq(w!1)(0)")
           (bddsimp (-1 -5))
           (("1"
             (typepred "Tr!1")
             (inst -1 "dbl[T](phi!1(seq(w!1)(1)), phi!1(seq(w!1)(0)))")
             (("1"
               (bddsimp (-1 -4))
               (("1"
                 (inst-cp -1 "phi!1(seq(w!1)(1))")
                 (inst -1 "phi!1(seq(w!1)(0))")
                 (bddsimp -1)
                 (("1"
                   (bddsimp -2)
                   (("1"
                     (inst 4
                      "G_from(Tr!1,trunc1(w!1^(1,length(w!1)-1)) o rev(qq))"
                      "Bush(Tr!1, phi!1(seq(w!1)(1)),dbl[T](phi!1(seq(w!1)(0)),phi!1(seq(w!1)(1))))")
                     (("1"
                       (bddsimp)
                       (("1"
                         (expand "lsth")
                         (flatten)
                         (hide 4)
                         (bddsimp)
                         (("1"
                           (lemma " Bush_less")
                           (inst -1 "Tr!1" "seq(w!1)(length(w!1)-1)"
                            "phi!1(seq(w!1)(1))"
                            "dbl[T](seq(w!1)(length(w!1) - 2), seq(w!1)(length(w!1) - 1))"
                            "dbl[T](phi!1(seq(w!1)(0)), phi!1(seq(w!1)(1)))")
                           (bddsimp)
                           (("1"
                             (hide -5 -6 -9 -10 -13 -14 4 5)
                             (install-rewrites "walks[T]")
                             (assert)
                             (grind))
                            ("2" (hide -4 -5 -9 -12 -13 5 6) (assert))
                            ("3"
                             (install-rewrites "walks[T]")
                             (replace -12 1 rl)
                             (hide-all-but (-11 1))
                             (assert))))
                          ("2"
                           (lemma "size_subgraph_path")
                           (inst-cp -1 "Tr!1" "w!1")
                           (reveal -4)
                           (expand "path?" -3)
                           (expand "finseq_appl")
                           (expand "walk?")
                           (bddsimp (-1 -3 -11 -12))
                           (("1"
                             (inst -5 "Tr!1"
                              "trunc1(w!1 ^ (1, length(w!1) - 1)) o rev(qq)")
                             (bddsimp -5)
                             (("1"
                               (replace -1 4 lr)
                               (replace -16 -3 rl)
                               (replace -3 4 lr)
                               (hide-all-but (-8 -14) -)
                               (hide 1 2 3 5)
                               (reveal -20)
                               (install-rewrites "path_circ[T]")
                               (assert)
                               (grind))
                              ("2"
                               (case "path?(Tr!1,w!1)")
                               (("1"
                                 (lemma "path_from?_caret")
                                 (inst
                                  -1
                                  "Tr!1"
                                  "1"
                                  "length(w!1)-1"
                                  "w!1"
                                  "seq(w!1)(0)"
                                  "seq(w!1)(length(w!1)-1)")
                                 (assert (-1 -15))
                                 (expand "path_from?")
                                 (bddsimp (-1 -2))
                                 (("1"
                                   (hide (-18 -19 5 6))
                                   (lemma "add1_rev")
                                   (inst
                                    -1
                                    "Tr!1"
                                    "w!1^(1,length(w!1)-1)"
                                    "phi!1(seq(w!1)(1))")
                                   (("1"
                                     (bddsimp -1)
                                     (("1"
                                       (lemma "path?_add1")
                                       (inst
                                        -1
                                        "Tr!1"
                                        "w!1 ^ (1, length(w!1) - 1)"
                                        "phi!1(seq(w!1)(1))")
                                       (bddsimp (-1 -4 -10))
                                       (("1"
                                         (expand "verts_of")
                                         (expand "finseq_appl")
                                         (skosimp*)
                                         (lemma "path_from?_caret")
                                         (inst
                                          -1
                                          "Tr!1"
                                          "i!1+1"
                                          "length(w!1)-1"
                                          "w!1"
                                          "seq(w!1)(0)"
                                          "seq(w!1)(length(w!1)-1)")
                                         (assert -1)
                                         (expand "path_from?" -1 1)
                                         (expand "from?" -1 1)
                                         (bddsimp (-1 -6))
                                         (("1"
                                           (lemma "cycl_red_compos")
                                           (expand "finseq_appl")
                                           (lemma "two_walks")
                                           (inst
                                            -2
                                            "Tr!1"
                                            "w!1^(1+i!1,length(w!1)-1)"
                                            "qq"
                                            "phi!1(seq(w!1)(1))"
                                            "phi!1(seq(w!1)(0))")
                                           (inst
                                            -1
                                            "Tr!1"
                                            "w!1^(1+i!1,length(w!1)-1)"
                                            "qq"
                                            "phi!1(seq(w!1)(1))"
                                            "phi!1(seq(w!1)(0))")
                                           (lemma "tree_no_circuits")
                                           (inst
                                            -1
                                            "Tr!1"
                                            "trunc1(w!1 ^ (1 + i!1, length(w!1) - 1)) o rev(qq)")
                                           (("1"
                                             (expand "circuit?" -1)
                                             (lemma "walk_concat")
                                             (inst
                                              -1
                                              "Tr!1"
                                              "phi!1(seq(w!1)(1))"
                                              "phi!1(seq(w!1)(1))"
                                              "phi!1(seq(w!1)(0))"
                                              "w!1^(1+i!1,length(w!1)-1)"
                                              "qq")
                                             (bddsimp 1)
                                             (("1"
                                               (hide 2)
                                               (hide -19 -20 -21)
                                               (hide -9 -11)
                                               (hide -1 -3)
                                               (expand "path_from?")
                                               (flatten)
                                               (expand "edge?" -11)
                                               (flatten)
                                               (bddsimp)
                                               (("1"
                                                 (reveal -21)
                                                 (hide-all-but
                                                  (-1 -6 -7)
                                                  -)
                                                 (expand "from?")
                                                 (expand "gen_seq2")
                                                 (hide 1)
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (assert)
                                                 (replace -1 1 lr)
                                                 (beta)
                                                 (assert))
                                                ("2"
                                                 (hide-all-but
                                                  (-3
                                                   -5
                                                   -6
                                                   -7
                                                   -11
                                                   -12
                                                   -15
                                                   -16)
                                                  -)
                                                 (hide 1)
                                                 (assert)
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (assert))
                                                ("3"
                                                 (hide-all-but -9 -)
                                                 (hide-all-but 2 +)
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (expand "path?")
                                                 (prop))
                                                ("4"
                                                 (hide-all-but -2 -)
                                                 (hide-all-but 2 +)
                                                 (expand "path?")
                                                 (bddsimp))
                                                ("5"
                                                 (hide-all-but -11 -)
                                                 (hide 1)
                                                 (assert))))
                                              ("2"
                                               (hide -1 -2)
                                               (assert)
                                               (hide -6 1 3)
                                               (bddsimp)
                                               (("1"
                                                 (reveal -18)
                                                 (replace -1 1 lr)
                                                 (hide -1)
                                                 (expand "gen_seq2")
                                                 (hide
                                                  -2
                                                  -3
                                                  -8
                                                  -14
                                                  -16
                                                  -17)
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (assert)
                                                 (expand "^")
                                                 (typepred "i!1")
                                                 (expand "^")
                                                 (hide-all-but (-1 -2) -)
                                                 (auto-rewrite-defs
                                                  :always?
                                                  t)
                                                 (assert)
                                                 (reveal -3 -13)
                                                 (replace -2 -4 lr)
                                                 (reveal -11)
                                                 (inst
                                                  -1
                                                  "2+i!1"
                                                  "length(w!1)-1")
                                                 (bddsimp)
                                                 (assert))
                                                ("2"
                                                 (flatten)
                                                 (expand "^" -1)
                                                 (expand*
                                                  "min"
                                                  "empty_seq")
                                                 (typepred "i!1")
                                                 (expand "^" -1)
                                                 (expand "min" -1)
                                                 (assert (-1 -2))
                                                 (reveal -18)
                                                 (replace -1 -3 lr)
                                                 (expand "gen_seq2" -3)
                                                 (assert))
                                                ("3"
                                                 (reveal -18)
                                                 (expand "path_from?" 1)
                                                 (replace -1 1 lr)
                                                 (hide-all-but
                                                  (-2 -19)
                                                  -)
                                                 (expand "gen_seq2")
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (assert))
                                                ("4"
                                                 (expand "^" -5)
                                                 (replace -5 -2 lr)
                                                 (replace -19 -2 rl)
                                                 (propax))))))
                                            ("2"
                                             (hide -1 -2 -3)
                                             (bddsimp)
                                             (("1"
                                               (lemma "walk_concat")
                                               (inst
                                                -1
                                                "Tr!1"
                                                "phi!1(seq(w!1)(1))"
                                                "phi!1(seq(w!1)(1))"
                                                "phi!1(seq(w!1)(0))"
                                                "w!1^(1+i!1,length(w!1)-1)"
                                                "qq")
                                               (bddsimp)
                                               (("1"
                                                 (expand "walk_from?")
                                                 (flatten)
                                                 (hide-all-but
                                                  (-3 -21)
                                                  -)
                                                 (hide 2)
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (assert))
                                                ("2"
                                                 (reveal -18)
                                                 (hide-all-but
                                                  (-1 -19)
                                                  -)
                                                 (replace -1 1 lr)
                                                 (reveal -15)
                                                 (inst
                                                  -1
                                                  "seq(w!1)(1)"
                                                  "seq(w!1)(0)")
                                                 (reveal -13)
                                                 (prop)
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (hide 2)
                                                 (assert)
                                                 (grind))
                                                ("3"
                                                 (replace -4 1 rl)
                                                 (replace -19 1 lr)
                                                 (hide-all-but
                                                  (-3 -12 -18)
                                                  -)
                                                 (hide 2 3)
                                                 (expand "^")
                                                 (install-rewrites
                                                  "walks[T]")
                                                 (assert)
                                                 (typepred "i!1")
                                                 (expand "^" -1)
                                                 (grind)
                                                 (("1"
                                                   (reveal -15)
                                                   (inst
                                                    -1
                                                    "1+i!1+n!1"
                                                    "2+i!1+n!1")
                                                   (assert))
                                                  ("2"
                                                   (reveal -33)
                                                   (inst -1 "1+i!1+n!1")
                                                   (assert))
                                                  ("3"
                                                   (reveal -1)
                                                   (inst
                                                    -1
                                                    "1+i!1+i!2"))))
                                                ("4"
                                                 (expand "^" 1)
                                                 (expand*
                                                  "min"
                                                  "empty_seq")
                                                 (typepred "i!1")
                                                 (expand "^" -1)
                                                 (assert)
                                                 (case
                                                  "i!1=length(w!1)-2")
                                                 (("1"
                                                   (replace -1 -6 lr)
                                                   (expand "^" -6)
                                                   (assert))
                                                  ("2" (assert))))))
                                              ("2"
                                               (reveal -17)
                                               (hide-all-but (-1 -19) -)
                                               (hide 2)
                                               (replace -1 1 lr)
                                               (install-rewrites
                                                "walks[T]")
                                               (assert))))
                                            ("3"
                                             (hide-all-but (-9 -21) -)
                                             (hide 2)
                                             (expand "^")
                                             (typepred "i!1")
                                             (expand "^")
                                             (expand "min")
                                             (case "i!1=length(w!1)-2")
                                             (("1"
                                               (reveal -7)
                                               (replace -2 -1 lr)
                                               (expand "^")
                                               (assert))
                                              ("2" (grind))))))
                                          ("2"
                                           (typepred "i!1")
                                           (expand "^" -1)
                                           (assert))))
                                        ("2"
                                         (hide-all-but (-3 -4 -18) -)
                                         (reveal -26)
                                         (reveal -15)
                                         (case-replace
                                          "seq(w!1 ^ (1, length(w!1) - 1))(length(w!1 ^ (1, length(w!1) - 1)) - 1)=seq(w!1)(length(w!1) - 1)")
                                         (("1"
                                           (replace -5 -4 lr)
                                           (replace -2 -4 rl)
                                           (replace -3 -4 rl)
                                           (propax))
                                          ("2"
                                           (hide-all-but (-5) -)
                                           (hide 2)
                                           (assert)
                                           (install-rewrites "walks[T]")
                                           (assert))
                                          ("3"
                                           (hide -2 -3 -4 2)
                                           (expand "^")
                                           (assert)
                                           (hide-all-but
                                            (-2 -9 -10 -13 -18)
                                            -)
                                           (hide 2)
                                           (install-rewrites "walks[T]")
                                           (assert))))
                                        ("3"
                                         (hide-all-but
                                          (-2 -9 -10 -13 -18)
                                          -)
                                         (hide 2)
                                         (install-rewrites "walks[T]")
                                         (assert)
                                         (bddsimp)
                                         (("1" (assert))
                                          ("2"
                                           (reveal -10)
                                           (expand "edge?")
                                           (copy -1)
                                           (inst
                                            -2
                                            "seq(w!1)(0)"
                                            "seq(w!1)(1)")
                                           (assert))))))
                                      ("2"
                                       (hide-all-but
                                        (-1 -2 -3 -7 -8 -9 -16 -17)
                                        -)
                                       (hide 2)
                                       (install-rewrites "paths[T]")
                                       (assert))
                                      ("3"
                                       (hide-all-but
                                        (-1 -2 -3 -7 -8 -9 -16 -17)
                                        -)
                                       (hide 2)
                                       (assert)
                                       (install-rewrites "paths[T]")
                                       (expand* "^" "min")
                                       (expand "from?")
                                       (expand "edge?")
                                       (lemma "path_from_l")
                                       (expand "path_from?")
                                       (inst
                                        -1
                                        "Tr!1"
                                        "(# length := length(w!1) - 1,
                                              seq := LAMBDA (x: below[min(length(w!1) - 1, w!1`length - 1)]): seq(w!1)(1 + x) #)"
                                        "seq(w!1)(1)"
                                        "seq(w!1)(length(w!1)-1)")
                                       (("1"
                                         (bddsimp)
                                         (("1" (hide -1 -3) (assert))
                                          ("2"
                                           (hide -1 -2)
                                           (reveal -21 1)
                                           (case "length(w!1)=2")
                                           (("1"
                                             (replace -1 1 lr)
                                             (replace -2 1 lr)
                                             (hide -2)
                                             (expand "gen_seq2")
                                             (expand "^")
                                             (expand "trunc1")
                                             (expand "path?")
                                             (expand "finseq_appl")
                                             (assert)
                                             (grind)
                                             (name
                                              "phx"
                                              "phi!1(seq(w!1)(1))")
                                             (replace -1 1 lr)
                                             (replace -1 1 rl)
                                             (hide -1 -2 -4 2)
                                             (hide -6)
                                             (hide -2)
                                             (reveal -15)
                                             (inst
                                              -1
                                              "seq(w!1)(0)"
                                              "seq(w!1)(1)")
                                             (expand "edge?")
                                             (propax))
                                            ("2" (assert))))
                                          ("3" (assert))))
                                        ("2"
                                         (hide-all-but 1)
                                         (skosimp)
                                         (typepred "x!1")
                                         (expand "min")
                                         (assert))))))
                                    ("2"
                                     (hide -4 -5 -6 -11 -13 -14 -15 2)
                                     (install-rewrites "paths[T]")
                                     (assert)
                                     (assert)
                                     (skosimp*)
                                     (typepred "i!1")
                                     (inst -2 "i!1+1")
                                     (assert))))
                                  ("2"
                                   (hide-all-but (-1 -14) -)
                                   (hide 2)
                                   (assert)
                                   (install-rewrites "paths[T]")
                                   (assert))))
                                ("2"
                                 (typepred "w!1")
                                 (hide -3 -9 -11 -12 -15 -16 -17 2 6 7)
                                 (install-rewrites "paths[T]")
                                 (expand "path?")
                                 (expand "finseq_appl")
                                 (bddsimp)
                                 (hide -5)
                                 (expand "walk?")
                                 (expand "finseq_appl")
                                 (bddsimp))))))
                            ("2" (propax))
                            ("3" (expand "finseq_appl") (propax))
                            ("4" (propax))))))
                        ("2"
                         (expand "Fox")
                         (inst 4
                          "trunc1(w!1 ^ (1, length(w!1) - 1)) o rev(qq)")
                         (("1"
                           (expand "finseq_appl")
                           (reveal -5)
                           (hide -5 -7 -8 -9 -11 -14 -15 5)
                           (install-rewrites "walks[T]")
                           (bddsimp)
                           (("1"
                             (case "length(trunc1(w!1 ^ (1, length(w!1) - 1)) o rev(qq))=length(w!1)")
                             (("1"
                               (replace -1 4 lr)
                               (case " seq(trunc1(w!1 ^ (1, length(w!1) - 1)) o rev(qq))(length(w!1) - 1)=phi!1(seq(w!1)(1))")
                               (("1"
                                 (replace -1 4 lr)
                                 (case
                                  " seq(trunc1(w!1 ^ (1, length(w!1) - 1)) o rev(qq))(length(w!1) - 2)=phi!1(seq(w!1)(0))")
                                 (("1" (replace -1 4 lr) (propax))
                                  ("2"
                                   (hide -1 -2 5)
                                   (replace -1 1 lr)
                                   (assert)
                                   (grind))))
                                ("2"
                                 (hide 5)
                                 (replace -2 1 lr)
                                 (hide -2)
                                 (assert)
                                 (grind))))
                              ("2"
                               (hide 5)
                               (replace -1 1 lr)
                               (hide -1 -4)
                               (grind))))
                            ("2"
                             (replace -1 4 lr)
                             (hide -1 -4)
                             (assert)
                             (grind))
                            ("3" (replace -1 4 lr) (hide -1 -4) (assert))
                            ("4"
                             (lemma "path?_gen_seq2")
                             (inst -1 "Tr!1" "phi!1(seq(w!1)(1))"
                              "phi!1(seq(w!1)(0))")
                             (bddsimp (-1 -3 -4 -5))
                             (("1"
                               (reveal -5 -6 -13)
                               (case "path?(Tr!1,w!1)")
                               (("1"
                                 (lemma "path?_caret")
                                 (inst
                                  -1
                                  "Tr!1"
                                  "1"
                                  "length(w!1) - 1"
                                  "w!1")
                                 (stop-rewrite)
                                 (assert (-1 -2 -11))
                                 (lemma "add1_rev")
                                 (inst
                                  -1
                                  "Tr!1"
                                  "w!1^(1,length(w!1)-1)"
                                  " phi!1(seq(w!1)(1))")
                                 (("1"
                                   (bddsimp)
                                   (("1"
                                     (case
                                      "phi!1(seq(w!1)(0))=seq(w!1 ^ (1, length(w!1) - 1))(length(w!1 ^ (1, length(w!1) - 1)) - 1)")
                                     (("1"
                                       (replace -1 -2 rl)
                                       (replace -12 -2 rl)
                                       (copy 4)
                                       (replace -2 1 rl)
                                       (lemma "path?_add1")
                                       (hide -2 -3)
                                       (inst
                                        -1
                                        "Tr!1"
                                        "w!1 ^ (1, length(w!1) - 1)"
                                        "phi!1(seq(w!1)(1))")
                                       (reveal -2)
                                       (replace -1 -2 rl)
                                       (bddsimp (-2 -3 -8 -10))
                                       (("1"
                                         (hide -8 -9)
                                         (hide -11 -12)
                                         (expand "verts_of")
                                         (skosimp*)
                                         (expand "finseq_appl")
                                         (expand "^" -3)
                                         (reveal -7)
                                         (inst
                                          -1
                                          "Tr!1"
                                          "1+i!1"
                                          "length(w!1)-1"
                                          "w!1")
                                         (typepred "i!1")
                                         (expand "^" -1)
                                         (expand "min")
                                         (assert (-1 -2 -8))
                                         (lemma "tree_one_path")
                                         (inst
                                          -1
                                          "Tr!1"
                                          "w!1 ^ (1 + i!1, length(w!1) - 1)"
                                          "qq"
                                          "phi!1(seq(w!1)(1))"
                                          "phi!1(seq(w!1)(0))")
                                         (reveal -9)
                                         (hide -5 -9)
                                         (install-rewrites "walks[T]")
                                         (stop-rewrite)
                                         (assert (-))
                                         (bddsimp)
                                         (("1"
                                           (hide-all-but
                                            (-2 -3 -12 -13 -14)
                                            -)
                                           (hide 1 5)
                                           (replace -3 -1 lr)
                                           (install-rewrites "walks[T]")
                                           (assert)
                                           (hide -3)
                                           (grind))
                                          ("2"
                                           (expand "path_from?")
                                           (expand "from?")
                                           (replace -11 1 lr)
                                           (assert)
                                           (hide
                                            -1
                                            -3
                                            -6
                                            -7
                                            -8
                                            -10
                                            -11
                                            2
                                            6)
                                           (install-rewrites "walks[T]")
                                           (assert))
                                          ("3"
                                           (expand "path_from?")
                                           (expand "from?")
                                           (hide
                                            -1
                                            -3
                                            -6
                                            -7
                                            -8
                                            -10
                                            -11
                                            2
                                            6)
                                           (install-rewrites "walks[T]")
                                           (assert))))
                                        ("2" (propax))
                                        ("3"
                                         (lemma "edge?_comm")
                                         (inst
                                          -1
                                          "Tr!1"
                                          "phi!1(seq(w!1)(0))"
                                          "phi!1(seq(w!1)(1))")
                                         (hide -2 -5 -6 -7 -8 -9 -11 -12)
                                         (hide 2 6)
                                         (expand "path?")
                                         (bddsimp)
                                         (expand "finseq_appl")
                                         (expand "gen_seq2")
                                         (expand "walk?")
                                         (expand "finseq_appl")
                                         (bddsimp)
                                         (hide -2)
                                         (inst -2 "0")
                                         (assert))))
                                      ("2"
                                       (expand "^" 1)
                                       (expand "min" 1)
                                       (propax))
                                      ("3"
                                       (expand "^" 1)
                                       (expand "min" 1)
                                       (assert))))
                                    ("2"
                                     (expand "^" 1)
                                     (expand "min" -1)
                                     (propax))
                                    ("3"
                                     (assert)
                                     (case "length(w!1)=2")
                                     (("1"
                                       (replace -1 5 lr)
                                       (expand "^" 5)
                                       (expand "min" 5)
                                       (expand "trunc1" 5)
                                       (expand "^" 5)
                                       (lemma "path?_rev")
                                       (inst -1 "Tr!1" "qq")
                                       (reveal -7)
                                       (bddsimp (-1 -2))
                                       (hide-all-but (-2 -3) -)
                                       (install-rewrites "paths[T]")
                                       (assert))
                                      ("2"
                                       (expand "^" 2)
                                       (expand "min" 2)
                                       (assert))))))
                                  ("2"
                                   (expand "^" 1)
                                   (expand "min" 1)
                                   (hide-all-but (-9 -13) -)
                                   (hide 5)
                                   (install-rewrites "walks[T]")
                                   (assert)
                                   (skosimp*)
                                   (inst -1 "1+i!1"))))
                                ("2"
                                 (reveal -11)
                                 (hide-all-but (-1 -2 -8 -12) -)
                                 (assert)
                                 (bddsimp))))
                              ("2"
                               (reveal -3)
                               (inst -1 "seq(w!1)(1)" "seq(w!1)(0)")
                               (bddsimp (-1 -6))
                               (("1" (propax)) ("2" (propax))))))))
                          ("2"
                           (reveal -5)
                           (hide-all-but (-1 -2 -3 -12) -)
                           (hide 5)
                           (replace -1 1 lr)
                           (install-rewrites "walks[T]")
                           (assert))
                          ("3"
                           (expand "^" 1)
                           (expand "min" 1)
                           (hide -13 -14)
                           (case "length(w!1)=2")
                           (("1"
                             (replace -1 * lr)
                             (assert)
                             (reveal 1)
                             (inst 1 "rev(qq)")
                             (("1"
                               (expand "finseq_appl")
                               (lemma "path?_rev")
                               (inst -1 "Tr!1" "qq")
                               (bddsimp (-1 -10))
                               (bddsimp)
                               (("1"
                                 (hide -6 -7 -8 -9 -10 -11 -12 -13 6)
                                 (hide -1 -2)
                                 (reveal -18)
                                 (replace -1 1 lr)
                                 (install-rewrites "walks[T]")
                                 (assert))
                                ("2"
                                 (expand* "^" "min")
                                 (expand "trunc1")
                                 (expand "^")
                                 (hide-all-but (-3 -14) -)
                                 (hide 6)
                                 (assert)
                                 (install-rewrites "walks[T]")
                                 (assert))
                                ("3"
                                 (reveal -8)
                                 (replace -1 1 lr)
                                 (hide -2 -3 -8 -10 -11 -13 -14 6)
                                 (install-rewrites "walks[T]")
                                 (assert))
                                ("4"
                                 (reveal -8)
                                 (replace -1 1 lr)
                                 (hide
                                  -1
                                  -2
                                  -3
                                  -7
                                  -8
                                  -9
                                  -10
                                  -11
                                  -12
                                  -13
                                  -14
                                  2
                                  6)
                                 (install-rewrites "walks[T]")
                                 (assert))))
                              ("2"
                               (hide -4 -5 -6 -7 -8 -9 -10 -11 -12 2 6)
                               (install-rewrites "walks[T]")
                               (assert))))
                            ("2" (assert))))))
                        ("3"
                         (assert)
                         (inst -7 "seq(w!1)(1)" "seq(w!1)(0)")
                         (bddsimp (-5 -7))
                         (("1" (propax)) ("2" (propax))))
                        ("4"
                         (inst -7 "seq(w!1)(1)" "seq(w!1)(0)")
                         (bddsimp (-5 -7))
                         (("1" (propax)) ("2" (propax))))))
                      ("2"
                       (bddsimp)
                       (("1"
                         (expand "incident_edges")
                         (lemma "edge?_comm")
                         (inst -1 "Tr!1" "phi!1(seq(w!1)(0))"
                          "phi!1(seq(w!1)(1))")
                         (bddsimp (-1 -6))
                         (("1"
                           (install-rewrites "walks[T]")
                           (hide -5 -6 -7 -8 -9 -11 -14 -15 5)
                           (assert)
                           (bddsimp))
                          ("2"
                           (inst -7 "seq(w!1)(1)" "seq(w!1)(0)")
                           (bddsimp (-1 -7))
                           (("1" (propax)) ("2" (propax))))))
                        ("2"
                         (expand "incident_edges")
                         (bddsimp)
                         (("1"
                           (hide-all-but (-1 -2 -10 -11) -)
                           (install-rewrites "walks[T]")
                           (assert))
                          ("2"
                           (inst -7 "seq(w!1)(1)" "seq(w!1)(0)")
                           (bddsimp (-5 -7))
                           (("1" (propax)) ("2" (propax))))))
                        ("3"
                         (inst 1 "phi!1(seq(w!1)(0))"
                          "phi!1(seq(w!1)(1))")
                         (replace -12 4 rl)
                         (assert))
                        ("4"
                         (inst 1 "phi!1(seq(w!1)(0))"
                          "phi!1(seq(w!1)(1))")
                         (assert))))
                      ("3"
                       (bddsimp)
                       (("1"
                         (lemma "walk_concat")
                         (inst -1 "Tr!1" "seq(w!1)(1)"
                          "phi!1(seq(w!1)(1))" "phi!1(seq(w!1)(0))"
                          "w!1^(1,length(w!1)-1)" "qq")
                         (bddsimp)
                         (("1"
                           (expand "walk_from?")
                           (flatten)
                           (hide -1 -2)
                           (expand "trunc1")
                           (propax))
                          ("2"
                           (expand "path?")
                           (flatten)
                           (reveal -6)
                           (hide -4 -5 -7 -8 -10 -12 -15 -16 2 6)
                           (expand "walk_from?")
                           (install-rewrites "walks[T]")
                           (replace -1 1 lr)
                           (bddsimp)
                           (("1"
                             (hide -1)
                             (expand "gen_seq2")
                             (assert)
                             (grind)
                             (("1"
                               (replace -10 1 rl)
                               (reveal -6)
                               (inst -1 "seq(w!1)(1)" "seq(w!1)(0)")
                               (expand "edge?")
                               (propax))
                              ("2"
                               (install-rewrites "walks[T]")
                               (replace -9 1 rl)
                               (reveal -6)
                               (inst -1 "seq(w!1)(1)" "seq(w!1)(0)")
                               (expand "edge?")
                               (propax))
                              ("3"
                               (reveal -15)
                               (hide -1 2)
                               (replace -8 3 rl)
                               (reveal 1)
                               (replace -8 1 rl)
                               (reveal -6)
                               (inst -1 "seq(w!1)(1)" "seq(w!1)(0)")
                               (expand "edge?")
                               (propax))))
                            ("2" (hide -1 -5) (grind))
                            ("3" (hide -1 -5) (grind))))
                          ("3"
                           (expand "walk_from?")
                           (bddsimp)
                           (("1"
                             (reveal -5)
                             (hide -4 -5 -7 -8 -9 -13 -14 -15 2 6)
                             (expand "walk?")
                             (bddsimp)
                             (("1"
                               (expand "finseq_appl")
                               (skosimp*)
                               (expand "^")
                               (inst -1 "1+n!1")
                               (assert (-1 -2)))
                              ("2"
                               (hide -1 -6)
                               (install-rewrites "walks[T]")
                               (assert)
                               (skosimp*)
                               (typepred "i!1")
                               (reveal -2)
                               (assert)
                               (inst -1 "1+i!1"))))
                            ("2"
                             (hide -3 -4 -6 -7 -8 -10 -13 -14 2 6)
                             (assert)
                             (expand* "^" "min")
                             (assert))
                            ("3"
                             (hide -3 -4 -6 -7 -8 -10 -13 -14 2 6)
                             (expand "^")
                             (propax))))
                          ("4"
                           (expand "^" 1)
                           (expand "min" 1)
                           (case "length(w!1)=2")
                           (("1"
                             (replace -1 2 lr)
                             (assert 2)
                             (expand* "^" "min")
                             (expand "trunc1")
                             (expand "^")
                             (expand "path?")
                             (flatten)
                             (lemma "walk?_rev")
                             (inst -1 "Tr!1" "qq")
                             (bddsimp (-1 -10))
                             (hide-all-but (-2 -14) -1)
                             (hide-all-but (-1 -2) -)
                             (hide 6)
                             (install-rewrites "walks[T]")
                             (assert))
                            ("2" (hide-all-but (-11 1 2)) (assert))))))
                        ("2"
                         (reveal -5)
                         (replace -1 1 lr)
                         (hide -1 -5 -7 -8 -13 -14 3 6)
                         (expand "gen_seq2")
                         (expand "rev")
                         (expand "trunc1")
                         (expand* "^" "min")
                         (expand "o")
                         (install-rewrites "walks[T]")
                         (assert)
                         (grind)
                         (("1"
                           (replace -9 1 rl)
                           (reveal -5)
                           (inst -1 "seq(w!1)(0)" "seq(w!1)(1)")
                           (expand "edge?")
                           (propax))
                          ("2"
                           (reveal -1)
                           (inst -1 "1+n!1" "2+n!1")
                           (assert))
                          ("3"
                           (case "n!1=length(w!1)-3")
                           (("1"
                             (replace -1 -5 lr)
                             (assert)
                             (reveal -1)
                             (inst -1 "length(w!1)-2" "length(w!1)-1")
                             (assert))
                            ("2" (assert))))
                          ("4" (reveal -11) (inst -1 "1+n!1") (assert))
                          ("5"
                           (case "n!1=length(w!1)-3")
                           (("1"
                             (replace -1 3 lr)
                             (assert)
                             (reveal -11)
                             (inst -1 "length(w!1)-2")
                             (assert))
                            ("2" (assert))))
                          ("6"
                           (replace -8 3 rl)
                           (reveal -5)
                           (inst -1 "seq(w!1)(0)" "seq(w!1)(1)")
                           (expand "edge?")
                           (propax))
                          ("7" (reveal -2) (inst -1 "1+i!1"))))
                        ("3"
                         (hide -3 -4 -6 -7 -8 -10 -13 -14 5)
                         (reveal -13)
                         (replace -1 1 lr)
                         (expand "rev")
                         (expand "o")
                         (expand* "^" "min")
                         (expand "trunc1")
                         (expand* "^" "min")
                         (expand "gen_seq2")
                         (hide -1)
                         (install-rewrites "walks[T]")
                         (assert)
                         (assert)
                         (grind))
                        ("4"
                         (hide -3 -4 -6 -7 -8 -10 -12 -13 6)
                         (reveal -13)
                         (replace -1 1 lr)
                         (hide -1 -5)
                         (grind))))
                      ("4"
                       (expand "^" 1)
                       (expand "min" 1)
                       (case "length(w!1)=2")
                       (("1"
                         (reveal 1)
                         (inst 1 "G_from(Tr!1,rev(qq))"
                          "Bush(Tr!1, phi!1(seq(w!1)(1)),dbl[T](phi!1(seq(w!1)(0)),phi!1(seq(w!1)(1))))")
                         (("1"
                           (bddsimp)
                           (("1"
                             (expand "lsth")
                             (flatten)
                             (bddsimp)
                             (("1"
                               (lemma "Bush_less")
                               (inst -1 "Tr!1" "phi!1(seq(w!1)(0))"
                                "phi!1(seq(w!1)(1))"
                                "dbl[T](seq(w!1)(length(w!1) - 2), seq(w!1)(length(w!1) - 1))"
                                "dbl[T](phi!1(seq(w!1)(0)), phi!1(seq(w!1)(1)))")
                               (("1"
                                 (bddsimp)
                                 (("1"
                                   (install-rewrites "doubletons[T]")
                                   (hide
                                    -6
                                    -7
                                    -8
                                    -9
                                    -10
                                    -11
                                    -12
                                    -15
                                    -16
                                    1
                                    2
                                    7)
                                   (assert)
                                   (assert))
                                  ("2" (assert))
                                  ("3"
                                   (install-rewrites "doubletons[T]")
                                   (assert 1))))
                                ("2"
                                 (install-rewrites "graphs[T]")
                                 (assert 1)
                                 (assert (-4 1))
                                 (lemma "dbl_comm")
                                 (inst
                                  -1
                                  "phi!1(seq(w!1)(1))"
                                  "phi!1(seq(w!1)(0))")
                                 (inst -9 "seq(w!1)(1)" "seq(w!1)(0)")
                                 (expand "edge?")
                                 (bddsimp)
                                 (reveal -7)
                                 (inst -1 "length(w!1)-2")
                                 (expand "edge?")
                                 (hide -7 -8 -11 -14 -17 -19 -20 2 3 8)
                                 (assert))))
                              ("2"
                               (lemma "size_subgraph_path")
                               (inst-cp -1 "Tr!1" "w!1")
                               (inst -1 "Tr!1" "rev(qq)")
                               (lemma "path?_rev")
                               (inst -1 "Tr!1" "qq")
                               (bddsimp -1 -8)
                               (("1"
                                 (bddsimp (-1 -2))
                                 (case "path?(Tr!1,w!1)")
                                 (("1"
                                   (bddsimp (-1 -4))
                                   (case "length(rev(qq))=2")
                                   (("1"
                                     (replace -6 -3 lr)
                                     (replace -1 -5 lr)
                                     (replace -19 -3 rl)
                                     (assert (-3 -5 2)))
                                    ("2"
                                     (reveal -7)
                                     (replace -1 1 lr)
                                     (hide-all-but -17 -)
                                     (hide 8)
                                     (install-rewrites "walks[T]")
                                     (assert))))
                                  ("2"
                                   (hide-all-but (-13 -14 -15) -)
                                   (reveal -21)
                                   (hide 8)
                                   (install-rewrites "paths[T]")
                                   (hide 2 3)
                                   (assert)
                                   (bddsimp)
                                   (reveal -7)
                                   (expand "verts_in?")
                                   (propax))))
                                ("2" (propax))))))
                            ("2"
                             (expand "lsth")
                             (prop)
                             (("1"
                               (lemma "size_subgraph_path")
                               (inst-cp -1 "Tr!1" "w!1")
                               (bddsimp (-2 -3))
                               (("1"
                                 (inst -3 "Tr!1" "rev(qq)")
                                 (lemma "path?_rev")
                                 (inst -1 "Tr!1" "qq")
                                 (case "path?(Tr!1, qq)")
                                 (("1"
                                   (bddsimp (-1 -2))
                                   (bddsimp (-2 -5))
                                   (replace -2 + lr)
                                   (replace -17 + lr)
                                   (replace -4 + lr)
                                   (replace -5 (1 2) lr)
                                   (reveal -7)
                                   (hide-all-but (-1 -6) -)
                                   (hide 4 5 6 7 8)
                                   (install-rewrites "walks[T]")
                                   (assert))
                                  ("2"
                                   (hide-all-but (-3 -5 -6 -15) -)
                                   (hide 2 3 9)
                                   (reveal -20)
                                   (install-rewrites "paths[T]")
                                   (replace -1 1 lr)
                                   (hide -1)
                                   (assert)
                                   (grind)
                                   (replace -6 3 rl)
                                   (assert)
                                   (reveal -6 -8)
                                   (inst -2 "seq(w!1)(1)" "seq(w!1)(0)")
                                   (bddsimp (-1 -2))
                                   (("1" (expand "edge?") (propax))
                                    ("2" (grind))))))
                                ("2"
                                 (hide-all-but (-1 -3 -4 -7 -10 -13) -)
                                 (hide 2 3 9)
                                 (install-rewrites "paths[T]")
                                 (assert)
                                 (grind)
                                 (("1"
                                   (case "i!1=1")
                                   (("1"
                                     (case "j!1=0")
                                     (("1" (grind)) ("2" (grind))))
                                    ("2"
                                     (case "i!1=0")
                                     (("1"
                                       (case "j!1=1")
                                       (("1" (grind)) ("2" (grind))))
                                      ("2" (grind))))))
                                  ("2" (grind) (reveal -2) (grind))))))
                              ("2"
                               (hide -5 -7 -13 -14 1 2 8)
                               (inst -6 "seq(w!1)(1)" "seq(w!1)(0)")
                               (bddsimp (-5 -6))
                               (("1" (propax)) ("2" (propax))))))
                            ("3"
                             (expand "Fox")
                             (expand "finseq_appl")
                             (inst 1 "rev(qq)")
                             (("1"
                               (lemma "path?_rev")
                               (inst -1 "Tr!1" "qq")
                               (bddsimp -1 -10)
                               (("1"
                                 (bddsimp)
                                 (("1"
                                   (reveal -6)
                                   (replace -1 1 lr)
                                   (hide -2 -7 -9 -10 -11 -13 -16 -17 6)
                                   (install-rewrites "walks[T]")
                                   (assert))
                                  ("2"
                                   (hide-all-but
                                    (-1 -3 -4 -14 1 2 3 4 5))
                                   (reveal -18)
                                   (install-rewrites "walks[T]")
                                   (replace -1 1 lr)
                                   (hide -1 -2)
                                   (assert))
                                  ("3"
                                   (reveal -6)
                                   (replace -1 1 lr)
                                   (hide
                                    -1
                                    -2
                                    -7
                                    -9
                                    -10
                                    -11
                                    -14
                                    -16
                                    -17
                                    6)
                                   (install-rewrites "walks[T]")
                                   (assert))))
                                ("2" (propax))))
                              ("2"
                               (hide-all-but (-9) -)
                               (install-rewrites "paths[T]")
                               (assert))))
                            ("4"
                             (inst -8 "seq(w!1)(1)" "seq(w!1)(0)")
                             (bddsimp (-6 -8))
                             (("1" (propax)) ("2" (propax))))))
                          ("2"
                           (bddsimp)
                           (("1"
                             (hide -5 -7 -8 -9 -13 -14 -15 6)
                             (install-rewrites "graphs[T]")
                             (assert)
                             (bddsimp)
                             (reveal -3)
                             (inst -1 "seq(w!1)(0)" "seq(w!1)(1)")
                             (expand "edge?")
                             (propax))
                            ("2"
                             (expand "incident_edges")
                             (hide -4 -7 -10 -13 -14 7)
                             (hide -4)
                             (install-rewrites "graphs[T]")
                             (assert)
                             (inst -5 "seq(w!1)(0)" "seq(w!1)(1)")
                             (bddsimp)
                             (("1" (replace -5 4 lr) (propax))
                              ("2" (assert))))
                            ("3"
                             (inst 1 "phi!1(seq(w!1)(0))"
                              "phi!1(seq(w!1)(1))")
                             (hide -4 -5 -7 -8 -9 -14 -15 6)
                             (install-rewrites "walks[T]")
                             (assert))
                            ("4"
                             (inst 1 "phi!1(seq(w!1)(0))"
                              "phi!1(seq(w!1)(1))")
                             (hide -5 -7 -8 -10 -13 -14 7)
                             (install-rewrites "walks[T]")
                             (assert))))
                          ("3"
                           (reveal -5)
                           (reveal -5)
                           (split)
                           (("1"
                             (replace -1 1 lr)
                             (hide -1 -2 -7 -9 -10 -11 -13 -16 -17 6)
                             (install-rewrites "walks[T]")
                             (assert))
                            ("2"
                             (replace -1 1 lr)
                             (hide -1 -2 -7 -9 -10 -11 -13 -16 -17 6)
                             (install-rewrites "walks[T]")
                             (assert)
                             (assert)
                             (grind)
                             (reveal -4)
                             (inst -1 "seq(w!1)(0)" "seq(w!1)(1)")
                             (expand "edge?")
                             (propax))))))
                        ("2" (assert))))))
                    ("2"
                     (assert)
                     (install-rewrites "doubletons[T]")
                     (assert))))
                  ("2" (install-rewrites "doubletons[T]") (assert))))
                ("2"
                 (inst -5 "seq(w!1)(1)" "seq(w!1)(0)")
                 (expand "edge?")
                 (assert))))
              ("2"
               (inst 1 "phi!1(seq(w!1)(1))" "phi!1(seq(w!1)(0))")
               (install-rewrites "doubletons[T]")
               (hide-all-but (-9) -)
               (hide 5 6)
               (assert))))
            ("2" (propax))))
          ("2" (assert))))
        ("2"
         (hide -1 -5 -6 4 5)
         (expand "path?")
         (expand "finseq_appl")
         (install-rewrites "walks[T]")
         (assert)
         (bddsimp)
         (inst -1 "length(w!1)-1")
         (replace -5 -1 rl)
         (propax))
        ("3"
         (typepred "phi!1")
         (inst -1 "seq(w!1)(1)")
         (typepred "w!1")
         (hide -3 -4 -8 -9 4 5)
         (install-rewrites "paths[T]")
         (assert)
         (bddsimp)
         (inst -2 "1"))))
      ("3" (assert))))
    ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: V3.2 try
script:
  (""
   (lemma "size_prep")
   (inst -1
    "LAMBDA G: (connected?(G) and num_edges(G)<size(G) IMPLIES tree?(G))")
   (bddsimp)
   (assert)
   (hide 1 3)
   (induct "n" 1 "nat_induction")
   (("1"
     (skosimp*)
     (hide -3 1)
     (lemma "graph_complected[T].connected_not_empty")
     (inst -1 "G!1")
     (bddsimp)
     (hide -1)
     (grind)
     (lemma "finite_sets[T].nonempty_card")
     (inst -1 "vert(G!1)")
     (bddsimp)
     (("1" (grind))
      ("2"
       (expand "nonempty?" 1)
       (expand "empty?" -1)
       (inst -1 "x!1")
       (expand "member" 1)
       (propax))))
    ("2"
     (skosimp*)
     (lemma "graph_complected[T].connect_deg_0")
     (case "forall (v:(vert(G!1))):deg(v,G!1)>1")
     (("1"
       (lemma "graph_deg_sum[T].deg_gt_one")
       (inst -1 "G!1")
       (bddsimp (-1 -2))
       (assert (-2 -7)))
      ("2"
       (skosimp*)
       (case "deg(v!1,G!1)=0")
       (("1"
         (typepred "v!1")
         (inst -3 "G!1" "v!1")
         (bddsimp (-1 -2 -3 -6))
         (expand "tree?" 2)
         (prop)
         (hide -2 -3 -5 -6 -7 1 3)
         (grind)
         (grind)
         (expand "singleton" 1)
         (hide -2)
         (grind)
         (lemma "finite_sets[T].card_one")
         (inst -1 "{y: T | y = v!1}")
         (("1"
           (bddsimp)
           (inst 2 "v!1")
           (grind)
           (hide -1 1)
           (expand "singleton" 1)
           (propax))
          ("2" (expand "singleton") (inst 1 "1" "LAMBDA (y:T): 0"))))
        ("2"
         (case "deg(v!1,G!1)=1")
         (("1"
           (hide -2)
           (lemma "graph_complected[T].rev_lem2")
           (inst -1 "G!1" "v!1")
           (bddsimp (-1 -2 -5))
           (inst -4 "del_vert(G!1, v!1)")
           (lemma "graph_ops[T].size_del_vert")
           (inst? -1)
           (replace -6 -1)
           (assert -1)
           (bddsimp (-1 -5))
           (("1"
             (hide -1 -3 -5 -6 -7)
             (expand "tree?" 3)
             (flatten)
             (inst 4 "v!1")
             (assert))
            ("2"
             (hide -1 -2 -4 -5 2 3)
             (hide 2)
             (install-rewrites "graph_ops")
             (assert)
             (case "card[T](remove[T](v!1, vert(G!1)))=card[T](vert(G!1))-1")
             (("1"
               (case "card({e: doubletons[T].doubleton | edges(G!1)(e) AND NOT e(v!1)})=card(edges(G!1))-1")
               (("1" (assert))
                ("2"
                 (hide -1 -3 2)
                 (grind)
                 (lemma "finite_sets[doubletons[T].doubleton].card_one")
                 (inst -1 "incident_edges(v!1, G!1)")
                 (bddsimp)
                 (skosimp*)
                 (expand "incident_edges" -2)
                 (lemma
                  "finite_sets[doubletons[T].doubleton].card_disj_union")
                 (inst -1
                  "{e: doubletons[T].doubleton | edges(G!1)(e) AND e(v!1)}"
                  "{e: doubletons[T].doubleton | edges(G!1)(e) AND NOT e(v!1)}")
                 (("1"
                   (bddsimp)
                   (("1"
                     (expand "union" -1)
                     (expand "member" -1)
                     (case "{x: doubletons[T].doubleton |
                                                                                                                                                 edges(G!1)(x) AND x(v!1) OR edges(G!1)(x) AND NOT x(v!1)}=edges(G!1)")
                     (("1"
                       (replace -1 -2)
                       (hide -1)
                       (expand "incident_edges" -2)
                       (replace -2 -1)
                       (assert (-1 1)))
                      ("2"
                       (hide -1 -2 -3 2)
                       (grind)
                       (apply-extensionality 1)
                       (hide 2)
                       (iff 1)
                       (bddsimp))))
                    ("2"
                     (hide -1 -2 2)
                     (install-rewrites
                      "finite_sets[doubletons[T].doubleton]")
                     (assert)
                     (skosimp*))))
                  ("2"
                   (lemma "graph_deg[T].incident_edges_TCC1")
                   (inst -1 "v!1" "G!1")
                   (hide -2 -3 2)
                   (expand "is_finite")
                   (skosimp*)
                   (expand "injective?")
                   (lemma "finite_subset[doubletons[T].doubleton]")
                   (inst -1 "edges(G!1)"
                    "{e: doubletons[T].doubleton |
                                                                                                edges(G!1)(e) AND NOT e(v!1)}")
                   (hide -2)
                   (bddsimp)
                   (("1" (grind)) ("2" (hide 2) (grind))))
                  ("3"
                   (hide 2)
                   (inst 1 "1"
                    "LAMBDA (y:{e: doubletons[T].doubleton |
                                                                             edges(G!1)(e) AND e(v!1)}): 0")
                   (case "({e: doubletons[T].doubleton | edges(G!1)(e) AND e(v!1)}) =
                                                                              singleton(x!1)")
                   (("1"
                     (hide -3)
                     (skosimp*)
                     (typepred "x!1")
                     (typepred "x1!1")
                     (typepred "x2!1")
                     (hide -1 -4 -7)
                     (decompose-equality -5)
                     (inst-cp -1 "x1!1")
                     (inst-cp -1 "x2!1")
                     (hide -1 -8)
                     (grind))
                    ("2" (propax))))))
                ("3"
                 (hide -1 -2 -3 2)
                 (grind)
                 (grind)
                 (lemma "finite_subset[doubletons[T].doubleton]")
                 (inst -1 "edges(G!1)"
                  "{e: doubletons[T].doubleton |
                                                                                          edges(G!1)(e) AND NOT e(v!1)}")
                 (bddsimp)
                 (("1" (grind)) ("2" (hide 2) (grind))))))
              ("2"
               (hide -1 -2 2)
               (grind)
               (lemma "finite_sets[T].card_remove")
               (inst -1 "vert(G!1)" "v!1")
               (typepred "v!1")
               (assert))))
            ("3" (propax))))
          ("2" (hide -1 -2 -3 -4 -5 4) (assert))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "uniq_paths?" 1)
   (skosimp*)
   (lemma "path_ops[T].path?_del_vert")
   (inst -1 "G!1" "v!1" "p!1")
   (reveal -1)
   (inst -1 "G!1" "v!1" "q!1")
   (expand "path_from?" -)
   (flatten)
   (bddsimp)
   (expand "uniq_paths?" -)
   (inst -5 "s!1" "t!1" "p!1" "q!1")
   (expand "path_from?" -)
   (bddsimp))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "graph_connected[T].conn_eq_path")
   (inst -1 "del_edge(G!1, e!1)")
   (iff -1)
   (bddsimp)
   (hide -1)
   (typepred "e!1")
   (skosimp*)
   (expand "path_connected?" -3)
   (bddsimp)
   (inst -3 "x!1" "y!1")
   (("1"
     (lemma "path_ops[T].walk_to_path_from")
     (skosimp*)
     (inst -1 "del_edge(G!1, e!1)" "x!1" "y!1" "w!1")
     (typepred "w!1")
     (expand "walk_from?" -3)
     (bddsimp (-3 -6 -7))
     (skosimp*)
     (lemma "walks[T].edge_to_walk")
     (inst -1 "G!1" "x!1" "y!1")
     (bddsimp (-1 -8 1))
     (("1"
       (case "path_from?(G!1,gen_seq2(G!1, x!1, y!1),x!1,y!1)")
       (("1"
         (case "path_from?(G!1, p!1, x!1, y!1)")
         (("1"
           (expand "uniq_paths?" -11)
           (inst -11 "x!1" "y!1" "p!1" "gen_seq2(G!1, x!1, y!1)")
           (bddsimp (-1 -2 -11))
           (hide -1 -2 -4 -6 -7 -10)
           (typepred "p!1")
           (hide -5)
           (expand "path_from?" -4)
           (flatten)
           (expand "path?" -4)
           (flatten)
           (hide -5)
           (expand "walk?" -4)
           (flatten)
           (inst -5 "0")
           (expand "finseq_appl" -)
           (replace -2 -5)
           (assert)
           (install-rewrites "walks[T]")
           (assert))
          ("2"
           (hide -1 -2 -4 -5 -7 -8 -10)
           (install-rewrites "paths[T]")
           (grind))))
        ("2"
         (hide -3 -4 -5 -6 -7 -9)
         (expand "path_from?" 1)
         (expand "path?" 1)
         (bddsimp)
         (("1" (grind)) ("2" (grind))))))
      ("2" (replace -7 -1) (hide -2 -3 -4 -5 -6 -8) (grind))
      ("3" (hide-all-but -1 -) (grind))))
    ("2"
     (hide -3)
     (grind)
     (typepred "G!1")
     (inst? -1)
     (bddsimp)
     (inst -2 "y!1")
     (grind))
    ("3"
     (lemma "graph_ops[T].vert_del_edge")
     (inst? -1)
     (typepred "G!1")
     (inst -1 "e!1")
     (bddsimp)
     (inst -2 "x!1")
     (assert)
     (replace -3 1)
     (hide -2 -3 -4 2 4)
     (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "size_prep")
   (inst -1
    "LAMBDA G:(connected?(G) AND uniq_paths?(G) IMPLIES tree?(G))")
   (bddsimp)
   (assert)
   (hide 1 3)
   (induct "n" 1 "nat_induction")
   (("1"
     (skosimp*)
     (hide -3 1)
     (lemma "graph_complected[T].connected_not_empty")
     (inst -1 "G!1")
     (bddsimp)
     (hide -1)
     (grind)
     (lemma "finite_sets[T].nonempty_card")
     (inst -1 "vert(G!1)")
     (bddsimp)
     (("1" (grind))
      ("2"
       (expand "nonempty?" 1)
       (expand "empty?" -1)
       (inst -1 "x!1")
       (expand "member" 1)
       (propax))))
    ("2"
     (skosimp*)
     (lemma "graph_complected[T].conn_lem3")
     (inst -1 "G!1")
     (bddsimp)
     (("1"
       (lemma "graph_complected[T].conn_eq_compl")
       (inst? -1)
       (bddsimp)
       (expand "tree?")
       (flatten)
       (expand "singleton?")
       (expand "size")
       (propax))
      ("2"
       (skosimp*)
       (typepred "v!1")
       (lemma "graph_complected[T].rev_lem2")
       (inst? -1)
       (bddsimp)
       (lemma "graph_ops[T].size_del_vert")
       (inst? -1)
       (lemma "uniq_del_vert")
       (inst? -1)
       (bddsimp)
       (inst -8 "del_vert(G!1, v!1)")
       (replace -9 -3)
       (assert -3)
       (bddsimp)
       (expand "tree?" 1)
       (flatten)
       (inst 2 "v!1")
       (assert))
      ("3"
       (lemma "del_edge_uniq")
       (inst? -1)
       (skolem! -3)
       (inst? -1)
       (bddsimp))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (bddsimp)
   (("1"
     (lemma "tree_paths[T].tree_one_path")
     (expand "uniq_paths?")
     (skosimp*)
     (inst? -1)
     (inst -1 "q!1")
     (assert))
    ("2"
     (lemma "graph_path_conn[T].path_implies_conn")
     (inst? -1)
     (lemma "graph_path_conn[T].tree_has_walk")
     (expand "path_connected?")
     (lemma "trees[T].tree_nonempty")
     (inst? -1)
     (bddsimp)
     (hide 3)
     (skosimp*)
     (inst -2 "G!1" "x!1" "y!1")
     (typepred "x!1")
     (typepred "y!1")
     (bddsimp)
     (("1" (expand "walk_from?") (propax))
      ("2"
       (inst 3 "(#length := 1, seq :=(LAMBDA (i:below(1)): x!1)#)")
       (("1" (hide -3 1) (grind)) ("2" (hide -1 -3 2 3) (grind))))))
    ("3" (lemma "charact_tree") (inst? -1) (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: V3.2
script:
  (""
   (skosimp*)
   (bddsimp)
   (("1" (lemma "num_edge_tree") (inst? -1) (assert))
    ("2"
     (lemma "tree_edge_card")
     (inst? -1)
     (assert)
     (install-rewrites "graph_ops")
     (assert))
    ("3"
     (assert)
     (install-rewrites "graph_ops")
     (lemma "iff_tree")
     (inst? -1)
     (stop-rewrite)
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: Trial3.2
script:
  (""
   (skosimp*)
   (lemma "graph_pair_induct_not")
   (inst -1
    "LAMBDA (G,H):subgraph?[T](G,G!1) AND subgraph?[T](H,G!1) AND NOT fixed?(G!1,phi!1) AND Fox(G!1,G,H,phi!1)")
   (("1"
     (bddsimp)
     (("1"
       (lemma "fixed_fox")
       (inst -1 "G!1" "phi!1")
       (bddsimp)
       (skosimp*)
       (inst -2 "G!2" "H!1")
       (prop)
       (("1"
         (expand "Fox")
         (skosimp*)
         (expand "finseq_appl")
         (typepred "G_from(G!1, w!1)")
         (replace -6 -2 rl)
         (propax))
        ("2"
         (expand "Fox")
         (skosimp*)
         (expand "Bush")
         (expand "finseq_appl")
         (lemma "subgraph_lem")
         (inst -1 "G!1"
          "reachable(del_edge(G!1,                                   dbl(seq(w!1)(length(w!1) - 2),                                      seq(w!1)(length(w!1) - 1))),                          seq(w!1)(length(w!1) - 1))")
         (("1" (replace -6 -1 rl) (propax)) ("2" (assert))))))
      ("2"
       (lemma "small_fox")
       (inst -1 "G!1" "phi!1" "_" "_")
       (skosimp*)
       (inst -1 "G!2" "H!1")
       (bddsimp (-1 -4))
       (("1"
         (expand "lsth")
         (assert)
         (skosimp*)
         (inst 2 "GG!1" "HH!1")
         (assert))
        ("2" (propax))))))
    ("2" (skosimp*))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cycle?")
   (flatten)
   (bddsimp)
   (("1" (assert))
    ("2"
     (inst -4 "1" "length(w!1)-2")
     (("1"
       (bddsimp)
       (expand "pre_circuit?")
       (flatten)
       (bddsimp)
       (lemma "walk?_subgraph[T]")
       (inst -1 "G!1" "H!1" "w!1")
       (bddsimp (-1 -2 -3))
       (propax))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "XOR")
   (flatten)
   (iff)
   (bddsimp)
   (("1"
     (skosimp*)
     (lemma "tree_no_circuits")
     (inst? -1)
     (inst -1 "w!1")
     (("1"
       (bddsimp)
       (hide -1 -2)
       (expand "cycle?")
       (expand "finseq_appl")
       (flatten)
       (install-rewrites "circuits[T]")
       (assert)
       (bddsimp)
       (("1"
         (skosimp*)
         (typepred "k!1")
         (inst -7 "k!1-1" "k!1+1")
         (("1" (assert) (flatten) (assert)) ("2" (assert))))
        ("2" (assert))))
      ("2"
       (hide -1 -2)
       (expand "cycle?")
       (flatten)
       (expand "pre_circuit?")
       (flatten))))
    ("2"
     (case "uniq_paths?(G!1)")
     (("1" (lemma "charact_tree") (inst? -1) (bddsimp))
      ("2"
       (expand "uniq_paths?")
       (skosimp*)
       (hide 2)
       (case "tree_paths[T].dual_paths?(G!1,p!1,q!1)")
       (("1"
         (lemma "min_dual_exists")
         (inst? -1)
         (("1"
           (bddsimp (-1 -2))
           (hide -1)
           (skosimp*)
           (lemma "min_dual_distin")
           (inst -1 "G!1" "p!2" "q!2")
           (("1"
             (lemma "dual_cycle")
             (inst -1 "G!1" "p!2" "q!2")
             (("1"
               (expand "finseq_appl")
               (bddsimp (-2 -3))
               (expand "is_min_dual?")
               (flatten)
               (bddsimp (-1 -3 -4))
               (inst 2 "trunc1(p!2) o rev(q!2)"))
              ("2"
               (expand "finseq_appl")
               (lemma "graph_complected[T].connected_not_empty")
               (inst -1 "G!1")
               (bddsimp (-1 -6))
               (expand "nonempty?")
               (expand "empty?" 1)
               (propax))))
            ("2"
             (lemma "graph_complected[T].connected_not_empty")
             (inst -1 "G!1")
             (bddsimp (-1 -5))
             (expand "empty?")
             (expand "nonempty?")
             (propax))))
          ("2"
           (lemma "graph_complected[T].connected_not_empty")
           (inst -1 "G!1")
           (bddsimp (-1 -5))
           (expand "empty?")
           (expand "nonempty?")
           (propax))))
        ("2"
         (typepred "q!1")
         (expand "path_from?")
         (flatten)
         (expand "dual_paths?")
         (expand "finseq_appl")
         (bddsimp)
         (("1"
           (install-rewrites "paths[T]")
           (hide -6 3)
           (assert)
           (grind))
          ("2"
           (install-rewrites "paths[T]")
           (hide -6 3)
           (assert)
           (grind))
          ("3" (prop))))
        ("3" (hide -3 3) (install-rewrites "paths[T]") (assert) (grind))
        ("4"
         (hide -3 3)
         (install-rewrites "paths[T]")
         (assert)
         (grind))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "conn_compon")
   (expand "empty?")
   (expand "empty?")
   (skosimp*)
   (expand "member")
   (inst? -1)
   (inst -1 "x!1")
   (skosimp*)
   (lemma "graph_deg_sum[T].deg_gt_one")
   (inst -1 "H!1")
   (case "FORALL (v: T): vert(H!1)(v) IMPLIES deg(v, H!1) > 1")
   (("1"
     (bddsimp (-1 -2))
     (("1"
       (lemma "tree_num_iff")
       (inst -1 "H!1")
       (bddsimp)
       (("1" (assert))
        ("2"
         (lemma "exclus_cycl")
         (inst -1 "H!1")
         (bddsimp)
         (expand "XOR")
         (flatten)
         (iff 1)
         (bddsimp)
         (lemma "sub_cycle")
         (inst? -1)
         (skosimp*)
         (inst -1 "w!1")
         (inst 3 "w!1")
         (("1" (bddsimp (-1 -3 -6)) (propax))
          ("2"
           (typepred "w!1")
           (hide-all-but (-1 -2 -8) -)
           (hide 2 3)
           (install-rewrites "walks[T]")
           (assert)
           (skosimp*)
           (inst?)
           (inst?)
           (assert))))))
      ("2"
       (assert)
       (skosimp*)
       (inst -1 "v!1")
       (typepred "v!1")
       (bddsimp (-1 -2))
       (propax))))
    ("2"
     (skosimp*)
     (inst -6 "v!1")
     (inst -7 "v!1")
     (hide -2 -4 -8)
     (case "vert(G!1)(v!1)")
     (("1" (bddsimp) (assert))
      ("2"
       (hide -3 -4 -5 2 3)
       (install-rewrites "subgraphs[T]")
       (assert)
       (grind))))))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "vert(G!1)")
   (lemma "finite_subset[T]")
   (inst -1 "vert(G!1)"
    "{y: T |
                    vert(G!1)(y) AND
                     (EXISTS (w: Seq[T](G!1)): walk_from?[T](G!1, w, x!1, y))}")
   (bddsimp)
   (hide 2)
   (expand "subset?")
   (expand "member")
   (skosimp*))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "finseq_appl")
   (assert)
   (skosimp*)
   (assert)
   (bddsimp)
   (("1"
     (install-rewrites "paths")
     (assert)
     (bddsimp)
     (inst -5 "length(w!1)-2")
     (assert))
    ("2"
     (inst 1 "seq(w!1)(length(w!1) - 2)" "seq(w!1)(length(w!1) - 1)")
     (expand "path?")
     (expand "finseq_appl")
     (bddsimp)
     (inst -5 "length(w!1)-2" "length(w!1)-1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "path_from?")
   (flatten)
   (expand "path?")
   (flatten)
   (expand "walk?")
   (flatten)
   (hide -2 -3 -4)
   (install-rewrites "walks[T]")
   (assert)
   (inst -1 "1"))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: mappings
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "w!1")
   (hide -4)
   (install-rewrites "subgraphs[T]")
   (assert)
   (skosimp*)
   (grind)
   (typepred "i!1")
   (reveal -3)
   (inst -1 "i!1")
   (assert)
   (reveal -4)
   (expand "subgraph?")
   (bddsimp)
   (expand "subset?")
   (expand "member")
   (inst -1 "seq(w!1)(i!1)")
   (prop))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (ground)
   (skolem!)
   (flatten)
   (expand "tri?")
   (expand "tri?")
   (skolem!)
   (assert)
   (inst 1 "x!1" "y!1" "z!1"))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tri?")
   (expand "edge?")
   (expand "common_neighbor?")
   (skolem!)
   (expand "tri?")
   (lemma "edges_vert_in")
   (copy -1)
   (inst -2 "G!1" "dbl[T](x!1,y!1)" "x!1" "y!1")
   (expand "edge?")
   (inst -1 "G!1" "dbl[T](x!1, z!1)" "x!1" "z!1")
   (inst 1 "z!1")
   (prop))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "singleton_edges")
   (inst?)
   (prop)
   (lemma "emptyset_is_empty?")
   (inst -1 "edges(G!1)")
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "adjacent")
   (lemma "vert_in")
   (inst -1 "G!1" "x!1" "y!1")
   (prop)
   (assert)
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (flatten)
   (rewrite "disjoint?")
   (rewrite "common_neighbor?")
   (skolem!)
   (expand "empty?")
   (inst -1 "z!1")
   (expand "edge?")
   (lemma "edge_adjacent")
   (inst -1 "G!1" "x!1" "z!1")
   (lemma "edge_adjacent")
   (inst -1 "G!1" "y!1" "z!1")
   (expand "edge?")
   (prop)
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "common_neighbor?")
   (expand "adjacent")
   (lemma "vert_in")
   (inst?)
   (expand "disjoint?")
   (expand "intersection")
   (expand "empty?")
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "card_disj_union[T]")
   (inst?)
   (prop)
   (lemma "adj_is_subset")
   (inst?)
   (lemma "card_subset[T]")
   (inst?)
   (prop)
   (expand "size")
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "del2_vert")
   (expand "del_vert")
   (expand "incident_edges")
   (expand "union")
   (apply-extensionality)
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "disjoint?")
   (lemma "emptyset_is_empty?")
   (inst?)
   (prop)
   (hide 2 3)
   (expand "incident_edges")
   (expand "del2_vert")
   (expand "del_vert")
   (expand "intersection")
   (apply-extensionality)
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "pre_edges_del21")
   (inst?)
   (lemma "pre_edges_del22")
   (inst?)
   (lemma "card_disj_union")
   (inst -1 "edges(del2_vert(G!1, x!1, y!1))"
    "union(incident_edges(x!1, G!1), incident_edges(y!1, G!1))")
   (prop)
   (replace -3 -1 rl)
   (expand "num_edges")
   (assert))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "del2_vert")
   (lemma "size_del_vert")
   (inst -1 "G!1" "x!1")
   (lemma "del_vert_still_in")
   (inst -1 "G!1" "x!1" "y!1")
   (prop)
   (("1"
     (lemma "size_del_vert")
     (inst -1 "del_vert(G!1,x!1)" "y!1")
     (grind))
    ("2" (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "del2_vert")
   (expand "tri?" -1)
   (expand "tri?" -1)
   (expand "edge?")
   (skolem!)
   (expand "del_vert")
   (expand "tri?")
   (expand "tri?")
   (inst 1 "x!2" "y!2" "z!1")
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "card_union")
   (inst?)
   (expand "incident_edges")
   (lemma "edge_has_2_verts")
   (grind)
   (expand "intersection")
   (grind)
   (lemma "int_lem")
   (inst?)
   (expand "edge?")
   (lemma "singleton_singleton")
   (inst?)
   (prop)
   (skolem!)
   (lemma "card_singleton")
   (inst?)
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "empty?")
   (lemma "adj_is_subset2")
   (inst?)
   (lemma "card_emptyset[T]")
   (lemma "emptyset_min[T]")
   (inst -1 "adjacent(G!1,x!1)")
   (prop)
   (("1" (replace -1 -2 rl) (propax)) ("2" (expand "empty?") (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "adjacent")
   (expand "edge?")
   (grind)
   (lemma "card_emptyset[T]")
   (grind)
   (replace -1 1 rl)
   (grind)
   (lemma "emptyset[T]")
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "adjacent")
   (expand "del_edge")
   (expand "edge?")
   (apply-extensionality)
   (("1" (grind)) ("2" (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "incident_edges")
   (expand "del_edge")
   (lemma "card_remove")
   (case "{e: doubleton[T] | remove(e!1, edges(G!1))(e) AND e(x!1)} =
          remove(e!1,{e: doubleton[T] | edges(G!1)(e) AND e(x!1)})")
   (("1"
     (inst -2 "{e: doubleton[T] | edges(G!1)(e) AND e(x!1)}" "e!1")
     (("1" (grind))
      ("2"
       (typepred "incident_edges(x!1,G!1)")
       (expand "incident_edges")
       (propax))))
    ("2" (apply-extensionality) (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "other_vert")
   (inst?)
   (inst -1 "G!1")
   (prop)
   (skolem!)
   (flatten)
   (expand "adjacent")
   (expand "del_edge")
   (lemma "card_remove[T]")
   (case "{y: T |
                        G!1`vert(y) AND
                         edge?(G!1 WITH [edges := remove(e!1, edges(G!1))])(x!1, y)} =
          remove(u!1,{y: T | vert(G!1)(y) AND edge?(G!1)(x!1, y)})")
   (("1"
     (inst -2 "{y: T | vert(G!1)(y) AND edge?(G!1)(x!1, y)}" "u!1")
     (("1"
       (expand "edge?")
       (grind)
       (lemma "dbl_comm")
       (inst -1 "x!1" "u!1")
       (replace -1 -6 rl)
       (propax))
      ("2" (typepred "adjacent(G!1,x!1)") (expand "adjacent") (propax))))
    ("2"
     (apply-extensionality)
     (("1"
       (replace -3 1)
       (expand "edge?")
       (hide -1 2 4)
       (grind)
       (("1" (lemma "dbl_comm") (inst?))
        ("2"
         (lemma "dbl_comm")
         (inst -1 "x!1" "u!1")
         (replace -1 -2 rl)
         (lemma "dbl_eq")
         (inst -1 "x!1" "x!1" "u!1" "x!2")
         (prop))))
      ("2"
       (hide -1 2 3 4)
       (grind)
       (("1"
         (lemma "edges_vert_in")
         (inst -1 "G!1" "e!2" "x!2" "y!2")
         (prop)
         (replace -1 -3 rl)
         (propax))
        ("2"
         (lemma "edges_vert_in")
         (inst -1 "G!1" "e!2" "x!2" "y!2")
         (prop)
         (replace -1 -3 rl)
         (propax))))))
    ("3"
     (hide -1)
     (grind)
     (("1"
       (lemma "edges_vert_in")
       (inst -1 "G!1" "e!2" "x!2" "y!2")
       (replace -2 -4 rl)
       (prop))
      ("2"
       (lemma "edges_vert_in")
       (inst -1 "G!1" "e!2" "x!2" "y!2")
       (replace -2 -4 rl)
       (prop))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "G" 1 "graph_induction_edge")
   (skosimp*)
   (case "num_edges(G!1)>=1")
   (("1"
     (expand "num_edges")
     (case "card(edges(G!1))>0")
     (("1"
       (hide -2)
       (lemma "nonempty_card")
       (inst -1 "edges(G!1)")
       (expand "nonempty?")
       (expand "empty?")
       (prop)
       (skolem!)
       (hide -2)
       (case "x!2(x!1)")
       (("1"
         (lemma "inc_ind2")
         (inst -1 "G!1" "x!2" "x!1")
         (prop)
         (("1"
           (lemma "adj_ind2")
           (inst -1 "G!1" "x!2" "x!1")
           (prop)
           (("1"
             (lemma "del_edge_num")
             (inst -1 "G!1" "x!2")
             (lift-if)
             (prop)
             (("1"
               (inst -8 "del_edge(G!1, x!2)")
               (expand "num_edges")
               (case "card(edges(del_edge(G!1, x!2))) < card(edges(G!1))")
               (("1" (prop) (inst -1 "x!1") (grind)) ("2" (grind))))
              ("2" (grind))))
            ("2" (grind))))
          ("2" (grind))))
        ("2"
         (lemma "inc_ind1")
         (inst -1 "G!1" "x!2" "x!1")
         (prop)
         (("1"
           (lemma "adj_ind1")
           (inst?)
           (inst -1 "x!1")
           (prop)
           (("1"
             (lemma "del_edge_num")
             (inst?)
             (lift-if)
             (prop)
             (("1" (inst -7 "del_edge(G!1,x!2)") (grind)) ("2" (grind))))
            ("2" (grind))))
          ("2" (grind))))))
      ("2" (grind))))
    ("2"
     (expand "num_edges")
     (lemma "card_emptyset[doubleton[T]]")
     (case "edges(G!1) = emptyset[doubleton[T]]")
     (("1"
       (lemma "adj_helper2")
       (inst?)
       (prop)
       (lemma "incident_edges_subset")
       (inst?)
       (replace -3 -1)
       (lemma "emptyset_min[doubleton[T]]")
       (inst -1 "incident_edges(x!1, G!1)")
       (prop)
       (replace -1 -5 rl)
       (grind))
      ("2"
       (case "card(edges(G!1))=0")
       (("1" (lemma "card_is_0") (inst -1 "edges(G!1)") (grind))
        ("2" (grind))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: mantel
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "G" 1 "graph_induction_vert")
   (skosimp*)
   (case "NOT num_edges(G!1)>0")
   (("1"
     (expand "num_edges" 1)
     (lemma "nonempty_card")
     (inst -1 "edges(G!1)")
     (expand "num_edges" 3)
     (assert))
    ("2"
     (copy -1)
     (expand "num_edges" -2)
     (lemma "nonempty_card")
     (inst -1 "edges(G!1)")
     (case "card(edges(G!1))>0 IMPLIES nonempty?(edges(G!1))")
     (("1"
       (prop)
       (hide -1 -2)
       (expand "nonempty?")
       (expand "empty?")
       (skolem!)
       (typepred "x!1")
       (skolem! -1)
       (lemma "edges_vert_in")
       (flatten -2)
       (inst -1 "G!1" "x!1" "x!2" "y!1")
       (prop)
       (("1"
         (case "common_neighbor?(G!1)(x!2,y!1)")
         (("1"
           (lemma "exst_tri")
           (inst -1 "G!1" "x!2" "y!1")
           (expand "edge?")
           (lemma "some_to_lots")
           (inst -1 "G!1" "x!2" "y!1")
           (replace -6 -7)
           (expand "member")
           (prop))
          ("2"
           (lemma "edges_del2")
           (inst -1 "G!1" "x!2" "y!1")
           (lemma "verts_del2")
           (inst -1 "G!1" "x!2" "y!1")
           (prop)
           (inst -9 "del2_vert(G!1, x!2, y!1)")
           (replace -1 -9)
           (case "size(G!1)-2<size(G!1)")
           (("1"
             (prop)
             (("1"
               (lemma "card_union")
               (inst -1 "G!1" "x!2" "y!1")
               (expand "edge?")
               (prop)
               (("1"
                 (replace -1 -5)
                 (hide -10 -11)
                 (case "size(G!1)=size(del2_vert(G!1, x!2, y!1))+2")
                 (("1"
                   (replace -1 4)
                   (lemma "inc_equals_adj")
                   (copy -1)
                   (inst -1 "G!1" "x!2")
                   (inst -2 "G!1" "y!1")
                   (replace -1 -8)
                   (replace -2 -8)
                   (hide -1 -2)
                   (hide -2)
                   (lemma "no_cn")
                   (inst -1 "G!1" "x!2" "y!1")
                   (prop)
                   (lemma "disj_adj_card")
                   (inst -1 "G!1" "x!2" "y!1")
                   (prop)
                   (grind))
                  ("2" (grind))))
                ("2" (grind))))
              ("2"
               (lemma "tri_del2")
               (inst -1 "G!1" "x!2" "y!1")
               (assert))))
            ("2" (assert))))))
        ("2" (expand "member") (propax))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "sep_num")
   (lemma "min_sep_set_seps")
   (lemma "card_is_0[T]")
   (inst?)
   (iff -1)
   (assert)
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "sep_num")
   (case "separates(G!1,emptyset[T],s!1,t!1)")
   (("1"
     (lemma "min_sep_set_card")
     (inst?)
     (assert)
     (rewrite "card_emptyset[T]")
     (assert))
    ("2"
     (hide -1 -2)
     (expand "separates")
     (prop)
     (("1" (expand "emptyset") (propax))
      ("2" (expand "emptyset") (propax))
      ("3"
       (skosimp*)
       (typepred "w!1")
       (case-replace "del_verts(G!1, emptyset[T]) = G!1")
       (("1" (hide -1) (inst 1 "w!1"))
        ("2"
         (hide -1 -2 -3 2)
         (apply-extensionality :hide? t)
         (("1"
           (apply-extensionality :hide? t)
           (expand "emptyset")
           (expand "del_verts")
           (propax))
          ("2"
           (apply-extensionality :hide? t)
           (expand "del_verts")
           (grind))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "separates(G!1, singleton[T](v!1), s!1, t!1)")
   (("1"
     (hide -2)
     (expand "sep_num")
     (lemma "min_sep_set_card")
     (inst?)
     (("1" (assert) (rewrite "card_singleton[T]"))
      ("2" (reveal -2) (propax))))
    ("2"
     (hide 2)
     (expand "separates")
     (split 1)
     (("1" (expand "singleton") (reveal 1) (assert))
      ("2" (expand "singleton") (assert))
      ("3"
       (skosimp*)
       (inst -4 "w!1")
       (expand "walk_from?")
       (flatten)
       (assert)
       (split -6)
       (("1"
         (skosimp*)
         (expand "walk?")
         (flatten)
         (hide -5)
         (expand "verts_in?")
         (inst - "i!1")
         (expand "del_verts")
         (expand "difference")
         (expand "member")
         (flatten)
         (expand "singleton")
         (propax))
        ("2"
         (hide -1 -2 3)
         (expand "walk?")
         (flatten)
         (split 1)
         (("1"
           (hide -2)
           (expand "verts_in?")
           (skosimp*)
           (inst?)
           (expand "del_verts")
           (expand "difference")
           (expand "member")
           (expand "singleton")
           (flatten)
           (propax))
          ("2"
           (skosimp*)
           (expand "finseq_appl")
           (inst?)
           (assert)
           (expand "edge?")
           (flatten)
           (expand "del_verts")
           (flatten)
           (hide -4)
           (assert))))))))
    ("3" (rewrite "finite_singleton"))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "sep_num")
   (lemma "min_sep_set_seps")
   (inst?)
   (assert)
   (case "card(min_sep_set(G!1, s!1, t!1)) = 1")
   (("1"
     (lemma "card_one[T]")
     (inst?)
     (assert)
     (skosimp*)
     (inst + "x!1")
     (lemma "min_sep_set_vert")
     (inst?)
     (inst - "x!1")
     (assert)
     (replace -2)
     (expand "singleton" -1)
     (expand "separable?")
     (flatten)
     (assert)
     (expand "separates")
     (flatten)
     (expand "singleton")
     (assert))
    ("2"
     (case "card(min_sep_set(G!1, s!1, t!1)) = 0")
     (("1"
       (hide -6 1)
       (lemma "sep_num_0")
       (inst -1 "G!1" "s!1" "t!1")
       (assert)
       (expand "sep_num")
       (inst + "av!1")
       (assert)
       (hide -2 -3 -7)
       (expand "separates")
       (flatten)
       (assert)
       (expand "singleton")
       (skosimp*)
       (inst?)
       (expand "walk_from?")
       (flatten)
       (assert)
       (expand "walk?")
       (flatten)
       (split +)
       (("1"
         (expand "verts_in?")
         (expand "del_verts")
         (expand "difference")
         (expand "member")
         (skosimp*)
         (inst?)
         (assert)
         (flatten)
         (assert)
         (expand "emptyset")
         (propax))
        ("2"
         (skosimp*)
         (inst?)
         (expand "finseq_appl")
         (expand "edge?")
         (assert)
         (flatten)
         (assert)
         (expand "del_verts")
         (flatten)
         (assert)
         (skosimp*)
         (expand "emptyset")
         (propax))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "separable?")
   (flatten)
   (assert)
   (expand "edge?")
   (rewrite "dbl_comm"))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "separates")
   (iff 1)
   (ground)
   (("1"
     (skosimp*)
     (lemma "walk?_reverse")
     (inst?)
     (("1" (assert) (skosimp*) (inst 3 "w!2"))
      ("2" (expand "walk_from?") (flatten) (propax))))
    ("2"
     (skosimp*)
     (lemma "walk?_reverse")
     (inst?)
     (("1" (assert) (skosimp*) (inst 3 "w!2"))
      ("2" (expand "walk_from?") (flatten) (propax))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "separable?(G!1,s!1,t!1)")
   (("1"
     (lemma "min_sep_set_seps")
     (inst?)
     (lemma "min_sep_set_seps")
     (inst -1 "G!1" "t!1" "s!1")
     (lemma "separable?_comm")
     (inst?)
     (assert)
     (expand "sep_num")
     (lemma "min_sep_set_card")
     (inst -1 "G!1" "min_sep_set(G!1, t!1, s!1)" "s!1" "t!1")
     (lemma "min_sep_set_card")
     (inst -1 "G!1" "min_sep_set(G!1, s!1, t!1)" "t!1" "s!1")
     (split -1)
     (("1" (split -2) (("1" (assert)) ("2" (rewrite "separates_comm"))))
      ("2" (rewrite "separates_comm"))))
    ("2"
     (expand "sep_num")
     (lemma "min_sep_set_edge")
     (copy -1)
     (inst?)
     (inst -2 "G!1" "t!1" "s!1")
     (lemma "separable?_comm")
     (inst?)
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "walk_from?")
   (flatten)
   (assert)
   (hide -1 -2)
   (expand "walk?")
   (flatten)
   (split 2)
   (("1"
     (hide -2)
     (expand "verts_in?")
     (skosimp*)
     (expand "del_verts")
     (expand "difference")
     (expand "remove")
     (expand "member")
     (inst?)
     (flatten)
     (assert)
     (expand "verts_of")
     (inst?)
     (expand "finseq_appl")
     (assert))
    ("2"
     (skosimp*)
     (expand "finseq_appl")
     (expand "edge?")
     (inst?)
     (assert)
     (flatten)
     (assert)
     (hide -2)
     (expand "del_verts")
     (flatten)
     (assert)
     (skosimp*)
     (expand "dbl")
     (expand "remove")
     (expand "member")
     (inst -5 "v!2")
     (assert)
     (expand "verts_of")
     (expand "finseq_appl")
     (split -3)
     (("1" (inst?) (assert)) ("2" (inst?) (assert))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "separates(G!1, remove(v!1,W!1) , s!1, t!1)")
   (("1"
     (hide 1)
     (lemma "min_sep_set_card")
     (inst?)
     (assert)
     (expand "sep_num")
     (replace -3)
     (hide -3)
     (hide -2 -3 -5 -6 -7)
     (rewrite "card_remove")
     (assert))
    ("2"
     (expand "separates")
     (flatten)
     (split 1)
     (("1" (expand "remove") (expand "member") (flatten) (propax))
      ("2" (expand "remove") (expand "member") (flatten) (propax))
      ("3"
       (skosimp*)
       (case "verts_of(w!1)(v!1)")
       (("1"
         (hide 3)
         (lemma "walk_to_path_from")
         (inst?)
         (assert)
         (skosimp*)
         (inst 3 "p!1")
         (lemma "path?_del_verts")
         (inst?)
         (inst?)
         (expand "path_from?")
         (flatten)
         (assert)
         (reveal 2)
         (inst 1 "p!1")
         (hide -1 -6 -7 -8 -10 2 3)
         (expand "path?")
         (flatten)
         (hide -2)
         (lemma "v_not_in")
         (hide -5)
         (inst?)
         (inst?)
         (assert)
         (hide 2 3)
         (expand "walk_from?")
         (expand "from?")
         (propax))
        ("2"
         (hide 5)
         (inst + "w!1")
         (hide -2 -3 -5 -6 2 3)
         (lemma "v_not_in")
         (inst?)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "path_thru_each")
   (inst?)
   (case "w1!1 = w2!1")
   (("1"
     (hide -2 1)
     (expand "sep_num")
     (lemma "min_sep_set_card")
     (inst?)
     (assert)
     (replace -3)
     (hide -3)
     (case-replace "dbl(w1!1, w2!1) = singleton(w1!1)")
     (("1" (rewrite "card_singleton") (assert))
      ("2"
       (apply-extensionality 1 :hide? t)
       (hide -1 -3 -4 -5)
       (expand "dbl")
       (expand "singleton")
       (iff 1)
       (ground))))
    ("2"
     (case "card(dbl(w1!1,w2!1)) = 2")
     (("1"
       (split 2)
       (("1"
         (inst - "dbl(w1!1, w2!1)" "w1!1")
         (("1"
           (assert)
           (expand "dbl" -2)
           (skosimp*)
           (expand "verts_of")
           (skosimp*)
           (expand "finseq_appl")
           (inst + "pv!1^(0,i!1)")
           (("1"
             (expand "path_from?")
             (expand "from?")
             (flatten)
             (assert)
             (split 1)
             (("1" (rewrite "path?_caret"))
              ("2" (expand* "^" min empty_seq) (propax))
              ("3" (expand* "^" min empty_seq) (propax))))
            ("2" (expand* "^" min empty_seq) (assert))))
          ("2" (rewrite "finite_dbl"))))
        ("2"
         (inst - "dbl(w1!1, w2!1)" "w2!1")
         (("1"
           (assert)
           (expand "dbl" -2)
           (skosimp*)
           (expand "verts_of")
           (skosimp*)
           (expand "finseq_appl")
           (inst + "pv!1^(0,i!1)")
           (("1"
             (expand "path_from?")
             (expand "from?")
             (flatten)
             (assert)
             (split 1)
             (("1" (rewrite "path?_caret"))
              ("2" (expand* "^" min empty_seq) (propax))
              ("3" (expand* "^" min empty_seq) (propax))))
            ("2" (expand* "^" min empty_seq) (assert))))
          ("2" (rewrite "finite_dbl"))))))
      ("2" (hide -1 -2 -3 -4 -5 3) (rewrite "card_dbl"))
      ("3" (rewrite "finite_dbl"))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "walk?")
   (split +)
   (("1"
     (flatten)
     (hide -2)
     (expand "verts_in?")
     (skosimp*)
     (inst?)
     (expand "del_verts")
     (expand "difference")
     (expand "member")
     (assert))
    ("2"
     (skosimp*)
     (inst?)
     (expand "finseq_appl")
     (assert)
     (hide -2)
     (expand "edge?")
     (flatten)
     (assert)
     (expand "del_verts")
     (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: sep_set_lems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (apply-extensionality 1 :hide? t)
   (("1"
     (apply-extensionality 1 :hide? t)
     (iff 1)
     (expand "del_vert")
     (expand "del_verts")
     (ground)
     (("1" (skosimp*) (expand "dbl") (ground))
      ("2" (inst?) (expand "dbl") (propax))
      ("3" (inst?) (expand "dbl") (propax))))
    ("2"
     (apply-extensionality 1 :hide? t)
     (expand "del_vert")
     (expand "remove")
     (expand "member")
     (iff 1)
     (expand "del_verts")
     (expand "difference")
     (expand "member")
     (expand "dbl")
     (ground))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: los_graph
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: informal
script:
  (""
   (skosimp*)
   (case "NOT P!1(x!2,x!1)")
   (("1"
     (case "NOT P!1(x!1,y!2)")
     (("1"
       (copy -5)
       (inst -1 "x!1" "y!2")
       (copy -6)
       (inst -1 "x!2" "x!1")
       (inst -5 "x!2" "x!1" "y!2")
       (prop))
      ("2"
       (case "NOT P!1(y!1,y!2)")
       (("1"
         (copy -6)
         (inst -1 "y!1" "y!2")
         (copy -7)
         (inst -1 "x!2" "x!1")
         (copy -8)
         (inst -1 "x!1" "y!1")
         (prop)
         (copy -7)
         (inst -1 "x!2" "x!1" "y!2")
         (prop)
         (inst -7 "x!1" "y!1" "y!2")
         (prop))
        ("2"
         (inst -4 "y!1" "y!2")
         (prop)
         (inst -4 "x!1" "y!2" "y!1")
         (prop))))))
    ("2"
     (case "NOT P!1(x!2,y!1)")
     (("1"
       (case "NOT P!1(y!1,y!2)")
       (("1"
         (copy -6)
         (inst -1 "x!2" "y!1")
         (inst -7 "y!1" "y!2")
         (prop)
         (inst -6 "x!2" "y!1" "y!2")
         (prop))
        ("2"
         (inst -7 "x!2" "y!2")
         (prop)
         (inst -5 "y!1" "y!2")
         (prop)
         (inst -5 "x!2" "y!2" "y!1")
         (prop))))
      ("2" (inst -4 "x!2" "x!1") (inst -3 "x!1" "x!2" "y!1") (prop))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: los_graph
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (lemma "los_graphic")
   (inst -1 "(lambda x,y:P!1(x,y)&P!1(y,x))" "Q!1")
   (skosimp*)
   (bddsimp)
   (("1" (inst -3 "x!1" "y!1") (prop)) ("2" (inst -3 "x!2" "y!2"))
    ("3"
     (skolem! 1)
     (inst-cp -4 "x!3" "y!3")
     (inst -4 "y!3" "x!3")
     (inst -2 "y!3" "x!3")
     (prop))
    ("4" (skolem! 1) (prop))
    ("5"
     (skolem! 1)
     (prop)
     (("1" (inst -7 "x!3" "y!3" "z!1") (prop))
      ("2" (inst -7 "z!1" "y!3" "x!3") (prop))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: from-prelude
script:
  (""
   (use "finite_sets_of_sets[T].powerset_natfun_inj")
   (skosimp)
   (expand "is_finite")
   (inst 1 "exp2(card(A!1))" "powerset_natfun(A!1)")
   (expand "injective?")
   (grind))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: revis all_edge
script:
  (""
   (skosimp*)
   (use all_edges_power)
   (lemma "finite_sets[set[T]].finite_subset")
   (inst -1 "powerset(V!1)" "all_edges(V!1)")
   (bddsimp)
   (("1"
     (hide -2)
     (expand "extend")
     (ground)
     (expand "is_finite")
     (skosimp*)
     (inst + "N!1" "f!1")
     (("1" (expand "injective?") (skosimp*) (inst?) (assert))
      ("2" (skosimp*) (ground))))
    ("2" (assert) (hide 2) (expand "restrict") (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: works
script:
  (""
   (grind)
   (("1" (lemma "graphs[T].edges_vert_in") (grind))
    ("2" (lemma "graphs[T].edges_vert_in") (grind))
    ("3" (lemma "graphs[T].edges_vert_in") (grind))
    ("4" (lemma "graphs[T].edges_vert_in") (grind))
    ("5" (lemma "graphs[T].edges_vert_in") (grind))
    ("6" (lemma "graphs[T].edges_vert_in") (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "complement")
   (apply-extensionality 1 :hide? t)
   (apply-extensionality 1 :hide? t)
   (expand "difference")
   (expand "member")
   (iff 1)
   (bddsimp)
   (expand "all_edges")
   (typepred "G!1")
   (typepred "x!1")
   (skosimp*)
   (inst 2 "x!2" "y!1")
   (bddsimp)
   (("1" (inst -2 "x!1") (bddsimp) (grind))
    ("2" (inst -2 "x!1") (bddsimp) (grind)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: Do not use vert_in
script:
  (""
   (skosimp*)
   (expand "path_connected?")
   (bddsimp)
   (("1" (expand "empty?") (expand "empty?") (hide 2) (grind))
    ("2"
     (skosimp*)
     (case "x!1=y!1")
     (("1"
       (inst 2 "gen_seq1(G!1,x!1)")
       (("1" (hide 3) (install-rewrites "walks") (assert))
        ("2"
         (lemma "walks[T].gen_seq1_is_walk")
         (inst -1 "G!1" "x!1")
         (typepred "x!1")
         (bddsimp))))
      ("2"
       (case "x!2=y!2")
       (("1"
         (inst 4 "gen_seq1(complement(G!1),x!2)")
         (("1" (install-rewrites "walks") (assert))
          ("2"
           (lemma "walks[T].gen_seq1_is_walk")
           (inst -1 "complement(G!1)" "x!2")
           (typepred "x!2")
           (bddsimp))))
        ("2"
         (case "edge?(G!1)(x!2,y!2)")
         (("1"
           (case "x!1=x!2")
           (("1"
             (case "y!1=y!2")
             (("1"
               (inst 4 "gen_seq2(G!1,x!1,y!1)")
               (("1" (hide 5) (install-rewrites "walks") (assert))
                ("2"
                 (lemma "walks[T].edge_to_walk")
                 (inst -1 "G!1" "x!1" "y!1")
                 (bddsimp)
                 (("1"
                   (expand "edge?")
                   (bddsimp)
                   (assert)
                   (replace -1 1 lr)
                   (replace -2 1 lr)
                   (assert)
                   (hide-all-but (-4 1))
                   (install-rewrites "walks")
                   (assert))
                  ("2" (assert))))))
              ("2"
               (case "edge?(G!1)(x!1, y!1)")
               (("1"
                 (inst 5 "gen_seq2(G!1,x!1,y!1)")
                 (("1" (hide -3 6) (install-rewrites "walks") (assert))
                  ("2"
                   (lemma "walks[T].edge_to_walk")
                   (inst? -1)
                   (assert)
                   (expand "edge?")
                   (hide-all-but (-1 1))
                   (assert)
                   (install-rewrites "walks")
                   (assert))))
                ("2"
                 (case "edge?(G!1)(y!2,y!1)")
                 (("1"
                   (inst 6 "add1(gen_seq2(G!1,x!2,y!2),y!1)")
                   (("1" (hide 7) (install-rewrites "walks") (assert))
                    ("2"
                     (lemma "walks[T].walk?_add1")
                     (inst? -1)
                     (bddsimp)
                     (("1"
                       (hide (2 8))
                       (install-rewrites "walks")
                       (assert))
                      ("2"
                       (lemma "graphs[T].edges_vert_in")
                       (inst -1 "G!1" "dbl[T](y!2,y!1)" "y!2" "y!1")
                       (("1" (expand "edge?") (assert))
                        ("2" (inst 1 "y!2" "y!1") (assert))))
                      ("3"
                       (lemma "walks[T].edge_to_walk")
                       (inst -1 "G!1" "x!2" "y!2")
                       (expand "edge?")
                       (assert)
                       (hide-all-but (-3 1))
                       (install-rewrites "walks")
                       (assert))))
                    ("3"
                     (lemma "graphs[T].edges_vert_in")
                     (inst -1 "G!1" "dbl[T](y!2,y!1)" "y!2" "y!1")
                     (("1" (expand "edge?") (assert))
                      ("2" (inst 1 "y!2" "y!1") (assert))))
                    ("4"
                     (lemma "graphs[T].edges_vert_in")
                     (inst -1 "G!1" "dbl[T](x!2,y!2)" "x!2" "y!2")
                     (("1" (bddsimp) (expand "edge?") (assert))
                      ("2" (inst 1 "x!2" "y!2") (assert))))))
                  ("2"
                   (inst 8 "add1(gen_seq2(complement(G!1),x!2,y!1),y!2)")
                   (("1" (hide 7) (install-rewrites "walks") (assert))
                    ("2"
                     (lemma "walks[T].walk?_add1")
                     (hide 8)
                     (inst -1 "complement(G!1)"
                      "gen_seq2[T](complement(G!1), x!2, y!1)" "y!2")
                     (assert)
                     (install-rewrites "walks")
                     (hide 2)
                     (bddsimp)
                     (("1"
                       (assert)
                       (bddsimp)
                       (("1"
                         (assert)
                         (lemma "graphs[T].edge?_comm")
                         (inst -1 "G!1" "y!2" "y!1")
                         (expand "edge?")
                         (propax))
                        ("2"
                         (inst 1 "y!1" "y!2")
                         (assert)
                         (lemma "graphs[T].edges_vert_in")
                         (inst -1 "G!1" "dbl[T](x!2,y!2)" "x!2" "y!2")
                         (bddsimp))))
                      ("2"
                       (lemma "walks[T].edge_to_walk")
                       (inst -1 "complement(G!1)" "x!2" "y!1")
                       (bddsimp)
                       (("1"
                         (hide 2)
                         (replace -1 * lr)
                         (hide (-2 2))
                         (install-rewrites "walks")
                         (assert)
                         (bddsimp)
                         (inst 1 "x!2" "y!1")
                         (bddsimp)
                         (("1" (typepred "y!1") (propax))
                          ("2" (typepred "x!2") (assert))))
                        ("2"
                         (lemma "walks[T].edge_to_walk")
                         (inst -1 "complement(G!1)" "x!2" "y!1")
                         (assert))))))
                    ("3"
                     (typepred "y!1")
                     (hide-all-but (-1 1))
                     (install-rewrites "walks")
                     (assert))))))))))
            ("2"
             (case-replace "edge?(G!1)(x!1,y!1)")
             (("1"
               (inst 5 "gen_seq2(G!1,x!1,y!1)")
               (("1" (hide 6) (install-rewrites "walks") (assert))
                ("2"
                 (lemma "walks[T].edge_to_walk")
                 (inst? -1)
                 (assert)
                 (hide-all-but (-1 1))
                 (install-rewrites "walks")
                 (assert))))
              ("2"
               (case-replace "edge?(G!1)(x!1,x!2)")
               (("1"
                 (case-replace "edge?(G!1)(y!2,y!1)")
                 (("1"
                   (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!1 AND seq(w)(length(w) - 1) = y!1 and walk?(G!1,w)")
                   (("1"
                     (skosimp*)
                     (hide 7)
                     (install-rewrites "walks")
                     (inst 6 "w!1")
                     (("1" (assert)) ("2" (assert))))
                    ("2"
                     (hide 7 8)
                     (install-rewrites "walks")
                     (inst 1
                      "walks[T].list2prewalk((:x!1,x!2,y!2,y!1:))")
                     (("1"
                       (install-rewrites "walks")
                       (assert)
                       (bddsimp)
                       (("1"
                         (skosimp*)
                         (bddsimp)
                         (("1"
                           (case "n!1=0")
                           (("1"
                             (replace -1 -3 lr)
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "n!1=2")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))
                          ("2"
                           (case "n!1=0")
                           (("1" (expand "nth") (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (expand "nth")
                               (replace -1 2 lr)
                               (assert))
                              ("2"
                               (case "n!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))))
                        ("2"
                         (skosimp*)
                         (typepred "i!1")
                         (lemma "graphs[T].edges_vert_in")
                         (lemma "graphs[T].edges_vert_in")
                         (lemma "graphs[T].edges_vert_in")
                         (inst -1 "G!1" "dbl[T](y!2,y!1)" "y!2" "y!1")
                         (inst -2 "G!1" "dbl[T](x!1,x!2)" "x!1" "x!2")
                         (inst -3 "G!1" "dbl[T](x!2,y!2)" "x!2" "y!2")
                         (bddsimp)
                         (case "i!1=0")
                         (("1" (expand "nth") (replace -1 1 lr) (propax))
                          ("2"
                           (case "i!1=1")
                           (("1"
                             (replace -1 2 lr)
                             (expand "nth")
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "i!1=2")
                             (("1"
                               (replace -1 3 lr)
                               (expand "nth")
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=3")
                               (("1"
                                 (replace -1 4 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))))))
                      ("2" (hide (-1 -2 -3 2 7 8)) (assert) (grind))))))
                  ("2"
                   (case "edge?(G!1)(x!2,y!1)")
                   (("1"
                     (hide 8)
                     (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!1 AND seq(w)(length(w) - 1) = y!1 and walk?(G!1,w)")
                     (("1" (skosimp*) (inst 7 "w!1") (bddsimp))
                      ("2"
                       (hide 8)
                       (inst 1 "walks[T].list2prewalk((:x!1,x!2,y!1:))")
                       (("1"
                         (install-rewrites "walks")
                         (assert)
                         (bddsimp)
                         (("1"
                           (skosimp*)
                           (bddsimp)
                           (("1"
                             (case "n!1=0")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))
                            ("2"
                             (case "n!1=0")
                             (("1" (expand "nth") (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (expand "nth")
                                 (replace -1 2 lr)
                                 (assert))
                                ("2" (assert))))))))
                          ("2"
                           (skosimp*)
                           (bddsimp)
                           (("1"
                             (case "n!1=0")
                             (("1" (expand "nth") (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (expand "nth")
                                 (replace -1 -3 lr)
                                 (assert))
                                ("2" (assert))))))
                            ("2"
                             (case "n!1=0")
                             (("1" (expand "nth") (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 2 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))
                          ("3"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!1")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (typepred "x!2")
                               (expand "complement")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))
                          ("4"
                           (assert)
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!1")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (typepred "x!2")
                               (expand "complement")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))))
                        ("2" (hide (-1 -2 -3 2 7)) (grind))))))
                    ("2"
                     (hide (-1 -2 3 8))
                     (lemma "graphs[T].edge?_comm")
                     (inst -1 "G!1" "y!2" "y!1")
                     (bddsimp)
                     (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!2 AND seq(w)(length(w) - 1) = y!2 and walk?(complement(G!1),w)")
                     (("1"
                       (skosimp*)
                       (inst 8 "w!1")
                       (install-rewrites "walks")
                       (assert))
                      ("2"
                       (hide 9)
                       (inst 1 "walks[T].list2prewalk((:x!2,y!1,y!2:))")
                       (("1"
                         (install-rewrites "walks")
                         (assert)
                         (bddsimp)
                         (("1"
                           (skosimp*)
                           (bddsimp)
                           (("1"
                             (case "n!1=0")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (assert))
                                ("2" (assert))))))
                            ("2" (assert))
                            ("3"
                             (case "n!1=0")
                             (("1"
                               (expand "nth")
                               (replace -1 * lr)
                               (inst 1 "x!2" "y!1")
                               (bddsimp)
                               (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (expand "nth")
                                 (replace -1 2 lr)
                                 (assert))
                                ("2" (assert))))))))
                          ("2"
                           (expand "nth")
                           (skosimp*)
                           (case "n!1=0")
                           (("1"
                             (replace -1 1 lr)
                             (assert)
                             (inst 1 "x!2" "y!1")
                             (bddsimp)
                             (("1" (assert)) ("2" (assert))
                              ("3" (assert) (reveal -3) (assert))))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (expand "nth")
                               (replace -1 2 lr)
                               (assert)
                               (bddsimp)
                               (reveal -3)
                               (assert))
                              ("2" (assert))))))
                          ("3"
                           (skosimp*)
                           (case "n!1=0")
                           (("1"
                             (replace -1 1 lr)
                             (expand "nth")
                             (bddsimp)
                             (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (expand "nth")
                               (replace -1 2 lr)
                               (assert))
                              ("2"
                               (bddsimp)
                               (("1" (assert)) ("2" (assert))
                                ("3" (assert))))))))
                          ("4"
                           (skosimp*)
                           (case "n!1=0")
                           (("1"
                             (replace -1 1 lr)
                             (assert)
                             (inst 1 "x!2" "y!1")
                             (bddsimp)
                             (("1" (assert))
                              ("2"
                               (reveal (-2 -3))
                               (replace -5 * lr)
                               (expand "edge?")
                               (propax))
                              ("3"
                               (reveal (-2 -3))
                               (replace -5 * lr)
                               (expand "edge?")
                               (propax))))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (expand "nth")
                               (replace -1 2 lr)
                               (assert)
                               (bddsimp)
                               (reveal (-2 -3))
                               (replace -5 * lr)
                               (expand "edge?")
                               (propax))
                              ("2" (assert))))))
                          ("5" (assert))
                          ("6"
                           (skosimp*)
                           (assert)
                           (bddsimp)
                           (("1"
                             (case "n!1=0")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (reveal (-2 -3))
                                 (replace -5 * lr)
                                 (expand "edge?")
                                 (propax))
                                ("2" (assert))))))
                            ("2"
                             (case "n!1=0")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))
                            ("3"
                             (case "n!1=0")
                             (("1"
                               (expand "nth")
                               (assert)
                               (inst 1 "x!2" "y!1")
                               (assert)
                               (reveal (-2 -3))
                               (replace -5 * lr)
                               (expand "edge?")
                               (propax))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (expand "nth")
                                 (replace -1 2 lr)
                                 (assert)
                                 (replace -3 * lr)
                                 (reveal (-2 -3))
                                 (replace -5 * lr)
                                 (expand "edge?")
                                 (propax))
                                ("2" (assert))))))))
                          ("7"
                           (skosimp*)
                           (assert)
                           (bddsimp)
                           (("1"
                             (case "n!1=0")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (reveal (-2 -3))
                               (replace -5 * lr)
                               (expand "edge?")
                               (propax))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (assert))
                                ("2" (assert))))))
                            ("2"
                             (case "n!1=0")
                             (("1"
                               (replace -1 -3 lr)
                               (expand "nth")
                               (reveal (-2 -3))
                               (expand "edge?")
                               (propax))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))
                            ("3"
                             (case "n!1=0")
                             (("1"
                               (replace -1 * lr)
                               (expand "nth")
                               (inst 1 "x!2" "y!1")
                               (assert)
                               (bddsimp)
                               (reveal (-2 -3))
                               (expand "edge?")
                               (propax))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (expand "nth")
                                 (replace -1 2 lr)
                                 (assert)
                                 (inst 2 "y!1" "y!2")
                                 (bddsimp)
                                 (("1" (assert))
                                  ("2"
                                   (assert)
                                   (reveal (-2 -3))
                                   (expand "edge?")
                                   (propax))
                                  ("3"
                                   (reveal (-2 -3))
                                   (replace -5 * lr)
                                   (expand "edge?")
                                   (propax))))
                                ("2" (assert))))))))
                          ("8"
                           (assert)
                           (skosimp*)
                           (case "n!1=0")
                           (("1"
                             (expand "nth")
                             (assert)
                             (bddsimp)
                             (("1"
                               (reveal (-2 -3))
                               (expand "edge?")
                               (replace -5 * lr)
                               (propax))
                              ("2"
                               (inst 1 "x!2" "y!1")
                               (bddsimp)
                               (("1"
                                 (reveal (-2 -3))
                                 (replace -5 * lr)
                                 (expand "edge?")
                                 (propax))
                                ("2"
                                 (reveal (-2 -3))
                                 (typepred "y!1")
                                 (propax))
                                ("3"
                                 (reveal (-2 -3))
                                 (typepred "x!2")
                                 (expand "complement")
                                 (propax))))))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (expand "nth")
                               (replace -1 2 lr)
                               (assert)
                               (bddsimp)
                               (("1"
                                 (reveal (-2 -3))
                                 (replace -5 * lr)
                                 (expand "edge?")
                                 (propax))
                                ("2"
                                 (inst 2 "y!1" "y!2")
                                 (bddsimp)
                                 (("1"
                                   (reveal (-2 -3))
                                   (replace -5 * lr)
                                   (expand "edge?")
                                   (propax))
                                  ("2"
                                   (typepred "y!2")
                                   (expand "complement")
                                   (propax))
                                  ("3" (typepred "y!1") (propax))))))
                              ("2" (assert))))))
                          ("9" (assert))
                          ("10"
                           (reveal (-2 -3))
                           (replace -4 * lr)
                           (expand "edge?")
                           (assert))
                          ("11"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!2")
                             (expand "complement")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))
                          ("12"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!2")
                             (expand "complement")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))
                          ("13"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!2")
                             (expand "complement")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))
                          ("14"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!2")
                             (expand "complement")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))
                          ("15"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!2")
                             (expand "complement")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))
                          ("16"
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (expand "nth")
                             (replace -1 1 lr)
                             (typepred "x!2")
                             (expand "complement")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 2 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))))
                        ("2" (grind))))))))))
                ("2"
                 (case "edge?(G!1)(y!1,y!2)")
                 (("1"
                   (case "y!1=y!2")
                   (("1"
                     (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!2 AND seq(w)(length(w) - 1) = y!2 and walk?(complement(G!1),w)")
                     (("1"
                       (skosimp*)
                       (inst 8 "w!1")
                       (install-rewrites "walks")
                       (assert))
                      ("2"
                       (hide 8 9)
                       (inst 1 "walks[T].list2prewalk((:x!2,x!1,y!2:))")
                       (("1" (install-rewrites "walks") (assert))
                        ("2" (grind))))))
                    ("2"
                     (case "edge?(G!1)(x!1,y!2)")
                     (("1"
                       (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!1 AND seq(w)(length(w) - 1) = y!1 and walk?(G!1,w)")
                       (("1"
                         (skosimp*)
                         (inst 8 "w!1")
                         (install-rewrites "walks")
                         (assert))
                        ("2"
                         (hide 9 10)
                         (inst 1
                          "walks[T].list2prewalk((:x!1,y!2,y!1:))")
                         (("1"
                           (install-rewrites "walks")
                           (assert)
                           (bddsimp)
                           (("1"
                             (skosimp*)
                             (bddsimp)
                             (("1"
                               (case "n!1=0")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (propax))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (replace -1 -3 lr)
                                   (expand "nth")
                                   (expand "nth")
                                   (replace -3 -4 lr)
                                   (propax))
                                  ("2" (assert))))))
                              ("2"
                               (case "n!1=0")
                               (("1" (expand "nth") (assert))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (expand "nth")
                                   (replace -1 2 lr)
                                   (assert)
                                   (lemma "graphs[T].edge?_comm")
                                   (inst -1 "G!1" "y!2" "y!1")
                                   (prop)
                                   (("1" (expand "edge?") (propax))
                                    ("2" (expand "edge?") (propax))))
                                  ("2" (assert))))))))
                            ("2"
                             (skosimp*)
                             (case "i!1=0")
                             (("1"
                               (expand "nth")
                               (replace -1 1 lr)
                               (typepred "x!1")
                               (propax))
                              ("2"
                               (case "i!1=1")
                               (("1"
                                 (replace -1 2 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2"
                                 (typepred "i!1")
                                 (case "i!1=2")
                                 (("1"
                                   (replace -1 3 lr)
                                   (expand "nth")
                                   (expand "nth")
                                   (expand "nth")
                                   (propax))
                                  ("2" (assert))))))))))
                          ("2" (grind))))))
                      ("2"
                       (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!2 AND seq(w)(length(w) - 1) = y!2 and walk?(complement(G!1),w)")
                       (("1"
                         (skosimp*)
                         (inst 10 "w!1")
                         (hide 9)
                         (install-rewrites "walks")
                         (assert))
                        ("2"
                         (hide 10 11)
                         (inst 1
                          "walks[T].list2prewalk((:x!2,x!1,y!2:))")
                         (("1"
                           (install-rewrites "walks")
                           (assert)
                           (bddsimp)
                           (("1"
                             (skosimp*)
                             (bddsimp)
                             (("1"
                               (case "n!1=0")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (replace -4 + lr)
                                 (lemma "graphs[T].edge?_comm")
                                 (inst -1 "G!1" "y!2" "y!1")
                                 (expand "edge?")
                                 (propax))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (replace -1 -3 lr)
                                   (expand "nth")
                                   (expand "nth")
                                   (replace -3 - rl)
                                   (lemma "graphs[T].edge?_comm")
                                   (inst -1 "G!1" "x!1" "x!2")
                                   (expand "edge?")
                                   (prop))
                                  ("2" (assert))))))
                              ("2"
                               (lemma "graphs[T].edge?_comm")
                               (inst -1 "G!1" "x!1" "x!2")
                               (replace -4 + rl)
                               (replace -4 -6 rl)
                               (expand "edge?")
                               (prop))
                              ("3"
                               (case "n!1=0")
                               (("1"
                                 (expand "nth")
                                 (assert)
                                 (inst 1 "x!2" "x!1")
                                 (assert)
                                 (typepred "x!2")
                                 (expand "complement")
                                 (propax))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (expand "nth")
                                   (replace -1 2 lr)
                                   (assert)
                                   (inst 2 "x!1" "y!2")
                                   (assert)
                                   (replace -3 * rl)
                                   (lemma "graphs[T].edge?_comm")
                                   (inst -1 "G!1" "x!1" "x!2")
                                   (expand "edge?")
                                   (propax))
                                  ("2" (assert))))))))
                            ("2"
                             (skosimp*)
                             (bddsimp)
                             (("1"
                               (case "n!1=0")
                               (("1"
                                 (replace -1 -3 lr)
                                 (expand "nth")
                                 (replace -3 * lr)
                                 (propax))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (replace -1 -3 lr)
                                   (expand "nth")
                                   (expand "nth")
                                   (replace -3 5 lr)
                                   (lemma "graphs[T].edge?_comm")
                                   (inst -1 "G!1" "y!2" "x!2")
                                   (expand "edge?")
                                   (prop))
                                  ("2" (assert))))))
                              ("2"
                               (case "n!1=0")
                               (("1"
                                 (expand "nth")
                                 (assert)
                                 (lemma "graphs[T].edge?_comm")
                                 (inst -1 "G!1" "x!1" "x!2")
                                 (expand "edge?")
                                 (propax))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (expand "nth")
                                   (replace -1 -3 lr)
                                   (expand "nth")
                                   (propax))
                                  ("2" (expand "nth") (assert))))))
                              ("3"
                               (case "n!1=0")
                               (("1"
                                 (expand "nth")
                                 (assert)
                                 (inst 1 "x!2" "x!1")
                                 (assert)
                                 (typepred "x!2")
                                 (expand "complement")
                                 (propax))
                                ("2"
                                 (case "n!1=1")
                                 (("1"
                                   (expand "nth")
                                   (replace -1 2 lr)
                                   (assert)
                                   (inst 2 "x!1" "y!2")
                                   (assert)
                                   (bddsimp)
                                   (("1"
                                     (replace -3 5 lr)
                                     (lemma "graphs[T].edge?_comm")
                                     (inst -1 "G!1" "y!2" "x!2")
                                     (expand "edge?")
                                     (propax))
                                    ("2"
                                     (typepred "y!2")
                                     (expand "complement")
                                     (propax))))
                                  ("2" (assert))))))))
                            ("3"
                             (skosimp*)
                             (case "i!1=0")
                             (("1"
                               (expand "nth")
                               (replace -1 1 lr)
                               (typepred "x!2")
                               (expand "complement")
                               (propax))
                              ("2"
                               (case "i!1=1")
                               (("1"
                                 (replace -1 2 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2"
                                 (case "i!1=2")
                                 (("1"
                                   (replace -1 3 lr)
                                   (expand "nth")
                                   (expand "nth")
                                   (expand "nth")
                                   (typepred "i!1")
                                   (typepred "y!2")
                                   (expand "complement")
                                   (propax))
                                  ("2" (typepred "i!1") (assert))))))))
                            ("4"
                             (skosimp*)
                             (case "i!1=0")
                             (("1"
                               (expand "nth")
                               (replace -1 1 lr)
                               (typepred "x!2")
                               (expand "complement")
                               (propax))
                              ("2"
                               (case "i!1=1")
                               (("1"
                                 (replace -1 2 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2"
                                 (case "i!1=2")
                                 (("1"
                                   (replace -1 3 lr)
                                   (expand "nth")
                                   (expand "nth")
                                   (expand "nth")
                                   (typepred "y!2")
                                   (expand "complement")
                                   (propax))
                                  ("2" (typepred "i!1") (assert))))))))))
                          ("2" (grind))))))))))
                  ("2"
                   (case "EXISTS (w: walks[T].prewalk): seq(w)(0) = x!2 AND seq(w)(length(w) - 1) = y!2 and walk?(complement(G!1),w)")
                   (("1"
                     (skosimp*)
                     (inst 9 "w!1")
                     (install-rewrites "walks")
                     (assert))
                    ("2"
                     (hide 10)
                     (hide 9)
                     (case "y!1=y!2")
                     (("1"
                       (inst 1 "walks[T].list2prewalk((:x!2,x!1,y!2:))")
                       (("1"
                         (install-rewrites "walks")
                         (assert)
                         (hide 3 4)
                         (assert)
                         (skosimp*)
                         (assert)
                         (bddsimp)
                         (("1"
                           (skosimp*)
                           (bddsimp)
                           (("1"
                             (case "n!1=0")
                             (("1"
                               (replace -1 * lr)
                               (expand "nth")
                               (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 * lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (assert))
                                ("2" (assert))))))
                            ("2"
                             (case "n!1=0")
                             (("1"
                               (replace -1 * lr)
                               (expand "nth")
                               (reveal 1)
                               (bddsimp)
                               (lemma "graphs[T].edge?_comm")
                               (inst -1 "G!1" "x!1" "x!2")
                               (expand "edge?")
                               (prop))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 - lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (reveal 2)
                                 (assert))
                                ("2" (assert))))))
                            ("3"
                             (assert)
                             (case "n!1=0")
                             (("1"
                               (replace -1 * lr)
                               (expand "nth")
                               (inst 1 "x!2" "x!1")
                               (typepred "x!1")
                               (typepred "x!2")
                               (expand "complement")
                               (assert))
                              ("2"
                               (case "n!1=1")
                               (("1"
                                 (replace -1 2 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (inst 2 "x!1" "y!2")
                                 (typepred "x!1")
                                 (typepred "y!2")
                                 (expand "complement")
                                 (assert))
                                ("2" (assert))))))))
                          ("2"
                           (typepred "x!2")
                           (typepred "x!1")
                           (typepred "y!2")
                           (expand "complement")
                           (skosimp*)
                           (typepred "i!1")
                           (case "i!1=0")
                           (("1"
                             (replace -1 + lr)
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "i!1=1")
                             (("1"
                               (replace -1 + lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2"
                               (case "i!1=2")
                               (("1"
                                 (replace -1 3 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (propax))
                                ("2" (assert))))))))))
                        ("2" (hide -2 2 3 4) (grind))))
                      ("2"
                       (inst 2
                        "walks[T].list2prewalk((:x!2,x!1,y!1,y!2:))")
                       (("1"
                         (install-rewrites "walks")
                         (assert)
                         (bddsimp)
                         (("1"
                           (skosimp*)
                           (case "n!1=0")
                           (("1"
                             (expand "nth")
                             (assert)
                             (bddsimp)
                             (("1"
                               (lemma "graphs[T].edge?_comm")
                               (inst -1 "G!1" "x!1" "x!2")
                               (expand "edge?")
                               (propax))
                              ("2"
                               (inst 2 "x!2" "x!1")
                               (typepred "x!2")
                               (typepred "x!1")
                               (expand "complement")
                               (assert))))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 3 lr)
                               (expand "nth")
                               (expand "nth")
                               (bddsimp)
                               (inst 3 "x!1" "y!1")
                               (typepred "x!1")
                               (typepred "y!1")
                               (assert))
                              ("2"
                               (case "n!1=2")
                               (("1"
                                 (replace -1 4 lr)
                                 (expand "nth")
                                 (expand "nth")
                                 (expand "nth")
                                 (inst 4 "y!1" "y!2")
                                 (assert)
                                 (typepred "y!2")
                                 (expand "complement")
                                 (propax))
                                ("2" (assert))))))))
                          ("2"
                           (typepred "x!2")
                           (typepred "x!1")
                           (typepred "y!1")
                           (typepred "y!2")
                           (expand "complement")
                           (grind)
                           (case "i!1=0")
                           (("1" (assert))
                            ("2"
                             (case "i!1=1")
                             (("1" (assert))
                              ("2"
                               (case "i!1=2")
                               (("1" (assert))
                                ("2"
                                 (case "i!1=3")
                                 (("1" (assert)) ("2" (assert))))))))))))
                        ("2" (hide -1 2 3 4) (grind))))))))))))))))
          ("2"
           (hide 5)
           (inst 5 "gen_seq2(G!1,x!2,y!2)")
           (("1" (install-rewrites "walks") (assert))
            ("2"
             (lemma "walks[T].edge_to_walk")
             (inst -1 "complement(G!1)" "x!2" "y!2")
             (assert)
             (bddsimp)
             (("1"
               (expand "complement" -1 2)
               (expand "gen_seq2")
               (propax))
              ("2"
               (hide 2)
               (grind)
               (("1" (typepred "y!2") (expand "complement") (propax))
                ("2" (typepred "x!2") (expand "complement") (propax))))))
            ("3" (typepred "y!2") (expand "complement") (propax))
            ("4"
             (typepred "x!2")
             (expand "complement")
             (propax))))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: not-final
script:
  (""
   (skosimp*)
   (case "edge?(G!1)(x!1,y!1)")
   (("1"
     (inst 2 "gen_seq2(G!1,x!1,y!1)")
     (hide 4)
     (lemma "walks[T].edge_to_walk")
     (inst -1 "G!1" "x!1" "y!1")
     (bddsimp)
     (("1" (install-rewrites "walks") (assert))
      ("2" (install-rewrites "walks") (assert))
      ("3" (expand "edge?") (assert) (expand "edg") (propax))
      ("4" (expand "edge?") (expand "edg") (assert)) ("5" (assert))
      ("6" (assert))))
    ("2"
     (case "NOT edge?(G!1)(x!2,y!2)")
     (("1"
       (inst 6 "gen_seq2(complement(G!1),x!2,y!2)")
       (("1"
         (bddsimp)
         (("1" (hide (2 3 4)) (install-rewrites "walks") (assert))
          ("2"
           (hide 2 4)
           (lemma "walks[T].edge_to_walk")
           (inst -1 "complement(G!1)" "x!2" "y!2")
           (install-rewrites "walks")
           (bddsimp)
           (("1"
             (expand "walk_from?")
             (bddsimp)
             (("1" (hide -1 1) (assert)) ("2" (hide -1 1) (assert))))
            ("2"
             (hide 5)
             (assert)
             (bddsimp)
             (inst 1 "x!2" "y!2")
             (typepred "x!2")
             (typepred "y!2")
             (assert))
            ("3" (assert))))))
        ("2"
         (typepred "y!2")
         (hide-all-but (-1 1))
         (assert)
         (expand "complement")
         (propax))
        ("3"
         (hide-all-but (-1 1))
         (typepred "x!2")
         (expand "complement")
         (propax))))
      ("2"
       (case "x!1=x!2")
       (("1"
         (case "y!1=y!2")
         (("1" (hide 3 5) (grind))
          ("2"
           (case "edge?(G!1)(y!1,y!2)")
           (("1"
             (lemma "graphs[T].edge?_comm")
             (inst -1 "G!1" "y!2" "y!1")
             (prop)
             (replace -3 -4 rl)
             (hide 6)
             (inst 4 "walks[T].list2prewalk((:x!1,y!2,y!1:))")
             (("1"
               (install-rewrites "walks")
               (assert)
               (bddsimp)
               (("1"
                 (skosimp*)
                 (bddsimp)
                 (("1"
                   (typepred "n!1")
                   (case "n!1=0")
                   (("1" (replace -1 -8 lr) (expand "nth") (propax))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -8 lr)
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2" (assert))))))
                  ("2"
                   (typepred "n!1")
                   (case "n!1=0")
                   (("1" (replace -1 6 lr) (expand "nth") (propax))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 7 lr)
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2" (assert))))))))
                ("2"
                 (typepred "x!1")
                 (typepred "y!2")
                 (typepred "y!1")
                 (hide (-4 -5 -7 5))
                 (grind)
                 (case "i!1=0")
                 (("1" (replace -1 5 lr) (expand "nth") (propax))
                  ("2"
                   (case "i!1=1")
                   (("1"
                     (replace -1 6 lr)
                     (expand "nth")
                     (expand "nth")
                     (propax))
                    ("2"
                     (case "i!1=2")
                     (("1"
                       (replace -1 7 lr)
                       (expand "nth")
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2" (assert))))))))))
              ("2"
               (hide (-1 -2 -4 3))
               (install-rewrites "walks")
               (assert))))
            ("2"
             (replace -1 3 lr)
             (hide 5)
             (inst 6 "walks[T].list2prewalk((:x!2,y!1,y!2:))")
             (("1"
               (bddsimp)
               (("1" (install-rewrites "walks") (assert))
                ("2"
                 (expand "walk_from?")
                 (bddsimp)
                 (("1"
                   (expand "complement")
                   (expand "walk?")
                   (bddsimp)
                   (("1"
                     (grind)
                     (("1"
                       (case "n!1=0")
                       (("1" (replace -1 -6 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -6 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("2"
                       (case "n!1=0")
                       (("1" (replace -1 -6 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -6 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("3"
                       (reveal 1)
                       (case "n!1=0")
                       (("1"
                         (replace -1 1 lr)
                         (expand "nth")
                         (inst 1 "x!2" "y!1")
                         (typepred "x!2")
                         (typepred "y!1")
                         (assert))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 2 lr)
                           (expand "nth")
                           (expand "nth")
                           (inst 2 "y!1" "y!2")
                           (typepred "y!1")
                           (typepred "y!2")
                           (assert))
                          ("2" (assert))))))))
                    ("2"
                     (install-rewrites "walks")
                     (assert)
                     (bddsimp)
                     (("1"
                       (skosimp*)
                       (typepred "i!1")
                       (case "i!1=0")
                       (("1" (replace -1 * lr) (expand "nth") (propax))
                        ("2"
                         (case "i!1=1")
                         (("1"
                           (replace -1 * lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2"
                           (case "i!1=2")
                           (("1"
                             (replace -1 * lr)
                             (expand "nth")
                             (expand "nth")
                             (expand "nth")
                             (propax))
                            ("2" (assert))))))))
                      ("2"
                       (skosimp*)
                       (typepred "i!1")
                       (case "i!1=0")
                       (("1" (replace -1 * lr) (expand "nth") (propax))
                        ("2"
                         (case "i!1=1")
                         (("1"
                           (replace -1 * lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2"
                           (case "i!1=2")
                           (("1"
                             (replace -1 * lr)
                             (expand "nth")
                             (expand "nth")
                             (expand "nth")
                             (propax))
                            ("2" (assert))))))))))))
                  ("2" (install-rewrites "walks") (assert))
                  ("3" (install-rewrites "walks") (assert))))))
              ("2" (install-rewrites "walks") (assert))))))))
        ("2"
         (case "y!1=y!2")
         (("1"
           (case "edge?(G!1)(x!1,x!2)")
           (("1"
             (inst 4 "walks[T].list2prewalk((:x!1,x!2,y!1:))")
             (("1"
               (replace -2 -3 rl)
               (hide 6)
               (bddsimp)
               (("1" (install-rewrites "walks") (assert))
                ("2"
                 (expand "walk_from?")
                 (bddsimp)
                 (("1"
                   (expand "list2prewalk")
                   (install-rewrites "walks")
                   (assert)
                   (bddsimp)
                   (("1"
                     (skosimp*)
                     (bddsimp)
                     (("1"
                       (typepred "n!1")
                       (case "n!1=0")
                       (("1" (replace -1 -7 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -7 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("2"
                       (typepred "n!1")
                       (case "n!1=0")
                       (("1" (replace -1 5 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 6 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("2"
                     (skosimp*)
                     (typepred "i!1")
                     (case "i!1=0")
                     (("1" (replace -1 5 lr) (expand "nth") (propax))
                      ("2"
                       (case "i!1=1")
                       (("1"
                         (replace -1 6 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "i!1=2")
                         (("1"
                           (replace -1 7 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))))
                  ("2" (install-rewrites "walks") (assert))
                  ("3" (install-rewrites "walks") (assert))))))
              ("2" (assert) (install-rewrites "walks") (assert))))
            ("2"
             (lemma "graphs[T].edge?_comm")
             (inst -1 "G!1" "x!1" "x!2")
             (bddsimp)
             (replace -1 4 lr)
             (inst 8 "walks[T].list2prewalk((:x!2,x!1,y!2:))")
             (("1"
               (hide 6)
               (install-rewrites "walks")
               (assert)
               (bddsimp)
               (("1"
                 (skosimp*)
                 (bddsimp)
                 (("1"
                   (case "n!1=0")
                   (("1" (replace -1 -7 lr) (expand "nth") (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -7 lr)
                       (expand "nth")
                       (expand "nth")
                       (assert))
                      ("2" (assert))))))
                  ("2"
                   (case "n!1=0")
                   (("1" (replace -1 -7 lr) (expand "nth") (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -7 lr)
                       (expand "nth")
                       (expand "nth")
                       (assert))
                      ("2" (assert))))))
                  ("3"
                   (case "n!1=0")
                   (("1"
                     (replace -1 5 lr)
                     (expand "nth")
                     (inst 5 "x!2" "x!1")
                     (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 6 lr)
                       (expand "nth")
                       (expand "nth")
                       (inst 6 "x!1" "y!2")
                       (assert))
                      ("2" (assert))))))))
                ("2" (grind))
                ("3"
                 (skosimp*)
                 (bddsimp)
                 (("1"
                   (case "n!1=0")
                   (("1" (replace -1 -6 lr) (expand "nth") (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -6 lr)
                       (expand "nth")
                       (expand "nth")
                       (assert))
                      ("2" (assert))))))
                  ("2"
                   (case "n!1=0")
                   (("1" (replace -1 -6 lr) (expand "nth") (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -6 lr)
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2" (assert))))))
                  ("3"
                   (case "n!1=0")
                   (("1"
                     (replace -1 6 lr)
                     (expand "nth")
                     (inst 6 "x!2" "x!1")
                     (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 7 lr)
                       (expand "nth")
                       (expand "nth")
                       (inst 7 "x!1" "y!2")
                       (assert))
                      ("2" (assert))))))))
                ("4" (grind))
                ("5"
                 (skosimp*)
                 (bddsimp)
                 (("1"
                   (case "n!1=0")
                   (("1" (replace -1 -6 lr) (expand "nth") (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -6 lr)
                       (expand "nth")
                       (expand "nth")
                       (assert))
                      ("2" (assert))))))
                  ("2"
                   (case "n!1=0")
                   (("1" (replace -1 -6 lr) (expand "nth") (propax))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -6 lr)
                       (expand "nth")
                       (expand "nth")
                       (assert))
                      ("2" (assert))))))
                  ("3"
                   (case "n!1=0")
                   (("1"
                     (replace -1 6 lr)
                     (expand "nth")
                     (inst 6 "x!2" "x!1")
                     (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 7 lr)
                       (expand "nth")
                       (expand "nth")
                       (inst 7 "x!1" "y!2")
                       (assert))
                      ("2" (assert))))))))
                ("6" (grind))
                ("7"
                 (skosimp*)
                 (bddsimp)
                 (("1"
                   (case "n!1=0")
                   (("1" (replace -1 -5 lr) (expand "nth") (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -5 lr)
                       (expand "nth")
                       (expand "nth")
                       (assert))
                      ("2" (assert))))))
                  ("2"
                   (case "n!1=0")
                   (("1" (replace -1 -5 lr) (expand "nth") (propax))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 -5 lr)
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2" (assert))))))
                  ("3"
                   (case "n!1=0")
                   (("1"
                     (replace -1 7 lr)
                     (expand "nth")
                     (inst 7 "x!2" "x!1")
                     (assert))
                    ("2"
                     (case "n!1=1")
                     (("1"
                       (replace -1 8 lr)
                       (expand "nth")
                       (expand "nth")
                       (inst 8 "x!1" "y!2")
                       (assert))
                      ("2"
                       (case "n!1=0")
                       (("1" (propax)) ("2" (assert))))))))))
                ("8"
                 (grind)
                 (case "i!1=0")
                 (("1" (replace -1 7 lr) (expand "nth") (propax))
                  ("2"
                   (case "i!1=1")
                   (("1"
                     (replace -1 8 lr)
                     (expand "nth")
                     (expand "nth")
                     (propax))
                    ("2"
                     (case "i!1=2")
                     (("1"
                       (replace -1 9 lr)
                       (expand "nth")
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2" (assert))))))))))
              ("2" (install-rewrites "walks") (assert))))))
          ("2"
           (case "edge?(G!1)(x!1,x!2)")
           (("1"
             (case "edge?(G!1)(y!2,y!1)")
             (("1"
               (inst 5 "walks[T].list2prewalk((:x!1,x!2,y!2,y!1:))")
               (("1"
                 (install-rewrites "walks")
                 (hide 7)
                 (assert)
                 (bddsimp)
                 (("1"
                   (skosimp*)
                   (bddsimp)
                   (("1"
                     (grind)
                     (case "n!1=0")
                     (("1" (replace -1 -6 lr) (expand "nth") (propax))
                      ("2"
                       (case "n!1=1")
                       (("1"
                         (replace -1 -6 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "n!1=2")
                         (("1"
                           (replace -1 -6 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("2"
                     (assert)
                     (grind)
                     (case "n!1=0")
                     (("1" (replace -1 7 lr) (expand "nth") (propax))
                      ("2"
                       (case "n!1=1")
                       (("1"
                         (replace -1 8 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "n!1=2")
                         (("1"
                           (replace -1 9 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))))
                  ("2"
                   (grind)
                   (case "i!1=0")
                   (("1" (replace -1 7 lr) (expand "nth") (propax))
                    ("2"
                     (case "i!1=1")
                     (("1"
                       (replace -1 8 lr)
                       (expand "nth")
                       (expand "nth")
                       (propax))
                      ("2"
                       (case "i!1=2")
                       (("1"
                         (replace -1 9 lr)
                         (expand "nth")
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "i!1=3")
                         (("1"
                           (replace -1 10 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))))))
                ("2" (hide 7) (install-rewrites "walks") (assert))))
              ("2"
               (case "edge?(G!1)(x!2,y!1)")
               (("1"
                 (inst 6 "walks[T].list2prewalk((:x!1,x!2,y!1:))")
                 (("1"
                   (hide 8)
                   (install-rewrites "walks")
                   (assert)
                   (bddsimp)
                   (("1"
                     (skosimp*)
                     (bddsimp)
                     (("1"
                       (case "n!1=0")
                       (("1" (replace -1 -7 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -7 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("2"
                       (case "n!1=0")
                       (("1" (replace -1 7 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 8 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("2"
                     (skosimp*)
                     (typepred "i!1")
                     (case "i!1=0")
                     (("1" (replace -1 7 lr) (expand "nth") (propax))
                      ("2"
                       (case "i!1=1")
                       (("1"
                         (replace -1 8 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "i!1=2")
                         (("1"
                           (replace -1 9 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("3"
                     (skosimp*)
                     (bddsimp)
                     (("1"
                       (case "n!1=0")
                       (("1" (replace -1 -6 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -6 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("2"
                       (case "n!1=0")
                       (("1" (replace -1 8 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 9 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("4"
                     (assert)
                     (skosimp*)
                     (typepred "i!1")
                     (case "i!1=0")
                     (("1" (replace -1 8 lr) (expand "nth") (propax))
                      ("2"
                       (case "i!1=1")
                       (("1"
                         (replace -1 9 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "i!1=2")
                         (("1"
                           (replace -1 10 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))))
                  ("2" (hide 8) (install-rewrites "walks") (assert))))
                ("2"
                 (lemma "graphs[T].edge?_comm")
                 (inst -1 "G!1" "y!2" "y!1")
                 (bddsimp)
                 (inst 10 "walks[T].list2prewalk((:x!2,y!1,y!2:))")
                 (("1"
                   (hide 8)
                   (install-rewrites "walks")
                   (assert)
                   (bddsimp)
                   (("1"
                     (skosimp*)
                     (bddsimp)
                     (("1"
                       (case "n!1=0")
                       (("1" (replace -1 -7 lr) (expand "nth") (assert))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -7 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("2"
                       (case "n!1=0")
                       (("1" (replace -1 -7 lr) (expand "nth") (assert))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -7 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("3"
                       (case "n!1=0")
                       (("1"
                         (replace -1 7 lr)
                         (expand "nth")
                         (inst 7 "x!2" "y!1")
                         (assert))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 8 lr)
                           (expand "nth")
                           (expand "nth")
                           (inst 8 "y!1" "y!2")
                           (assert))
                          ("2" (assert))))))))
                    ("2"
                     (skosimp*)
                     (typepred "i!1")
                     (case "i!1=0")
                     (("1" (replace -1 7 lr) (expand "nth") (propax))
                      ("2"
                       (case "i!1=1")
                       (("1"
                         (replace -1 8 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "i!1=2")
                         (("1"
                           (replace -1 9 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("3" (assert)) ("4" (assert)) ("5" (assert))
                    ("6" (assert))
                    ("7"
                     (skosimp*)
                     (bddsimp)
                     (("1"
                       (case "n!1=0")
                       (("1" (replace -1 -5 lr) (expand "nth") (assert))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -5 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("2"
                       (case "n!1=0")
                       (("1" (replace -1 -5 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -5 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))
                      ("3"
                       (assert)
                       (case "n!1=0")
                       (("1"
                         (replace -1 9 lr)
                         (expand "nth")
                         (inst 9 "x!2" "y!1")
                         (assert))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 10 lr)
                           (expand "nth")
                           (expand "nth")
                           (inst 10 "y!1" "y!2")
                           (assert))
                          ("2" (assert))))))))
                    ("8"
                     (skosimp*)
                     (case "i!1=0")
                     (("1" (replace -1 9 lr) (expand "nth") (propax))
                      ("2"
                       (case "i!1=1")
                       (("1"
                         (replace -1 10 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (case "i!1=2")
                         (("1"
                           (replace -1 11 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))))
                  ("2"
                   (hide 9)
                   (install-rewrites "walks")
                   (assert))))))))
            ("2"
             (assert)
             (case "edge?(G!1)(x!1,y!2)")
             (("1"
               (case "edge?(G!1)(y!2,y!1)")
               (("1"
                 (inst 6 "walks[T].list2prewalk((:x!1,y!2,y!1:))")
                 (("1"
                   (hide 8)
                   (install-rewrites "walks")
                   (assert)
                   (bddsimp)
                   (("1"
                     (skosimp*)
                     (bddsimp)
                     (("1"
                       (case "n!1=0")
                       (("1" (replace -1 -6 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 -6 lr)
                           (expand "nth")
                           (expand "nth")
                           (assert))
                          ("2" (assert))))))
                      ("2"
                       (case "n!1=0")
                       (("1" (replace -1 7 lr) (expand "nth") (propax))
                        ("2"
                         (case "n!1=1")
                         (("1"
                           (replace -1 8 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))
                    ("2"
                     (skosimp*)
                     (case "i!1=0")
                     (("1" (replace -1 7 lr) (expand "nth") (propax))
                      ("2"
                       (case "i!1=1")
                       (("1"
                         (replace -1 8 lr)
                         (expand "nth")
                         (expand "nth")
                         (propax))
                        ("2"
                         (typepred "i!1")
                         (case "i!1=2")
                         (("1"
                           (replace -1 9 lr)
                           (expand "nth")
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2" (assert))))))))))
                  ("2" (hide 8) (install-rewrites "walks") (assert))))
                ("2"
                 (case "edge?(G!1)(x!2,y!1)")
                 (("1"
                   (lemma "graphs[T].edge?_comm")
                   (inst -1 "G!1" "y!2" "x!2")
                   (prop)
                   (inst 7 "walks[T].list2prewalk((:x!1,y!2,x!2,y!1:))")
                   (("1"
                     (hide 9)
                     (install-rewrites "walks")
                     (assert)
                     (bddsimp)
                     (("1"
                       (skosimp*)
                       (bddsimp)
                       (("1"
                         (case "n!1=0")
                         (("1"
                           (replace -1 -7 lr)
                           (expand "nth")
                           (propax))
                          ("2"
                           (case "n!1=1")
                           (("1"
                             (replace -1 -7 lr)
                             (expand "nth")
                             (expand "nth")
                             (assert))
                            ("2"
                             (case "n!1=2")
                             (("1"
                               (replace -1 -7 lr)
                               (expand "nth")
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))))
                        ("2"
                         (case "n!1=0")
                         (("1" (replace -1 9 lr) (expand "nth") (propax))
                          ("2"
                           (case "n!1=1")
                           (("1"
                             (replace -1 10 lr)
                             (expand "nth")
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "n!1=2")
                             (("1"
                               (replace -1 11 lr)
                               (expand "nth")
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))))))
                      ("2"
                       (grind)
                       (case "i!1=0")
                       (("1" (replace -1 9 lr) (expand "nth") (propax))
                        ("2"
                         (case "i!1=1")
                         (("1"
                           (replace -1 10 lr)
                           (expand "nth")
                           (expand "nth")
                           (propax))
                          ("2"
                           (case "i!1=2")
                           (("1"
                             (replace -1 11 lr)
                             (expand "nth")
                             (expand "nth")
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "i!1=3")
                             (("1"
                               (replace -1 12 lr)
                               (install-rewrites "walks")
                               (assert))
                              ("2" (assert))))))))))))
                    ("2" (hide 9) (install-rewrites "walks") (assert))))
                  ("2"
                   (inst 10 "walks[T].list2prewalk((:x!2,y!1,y!2:))")
                   (("1"
                     (lemma "graphs[T].edge?_comm")
                     (inst -1 "G!1" "y!2" "y!1")
                     (bddsimp)
                     (("1" (hide 9) (install-rewrites "walks") (assert))
                      ("2"
                       (hide 9)
                       (install-rewrites "walks")
                       (assert)
                       (bddsimp)
                       (("1"
                         (skosimp*)
                         (bddsimp)
                         (("1"
                           (case "n!1=0")
                           (("1"
                             (replace -1 -6 lr)
                             (expand "nth")
                             (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 -6 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))
                          ("2"
                           (case "n!1=0")
                           (("1"
                             (replace -1 -6 lr)
                             (expand "nth")
                             (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 -6 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))
                          ("3"
                           (case "n!1=0")
                           (("1"
                             (replace -1 10 lr)
                             (expand "nth")
                             (inst 10 "x!2" "y!1")
                             (bddsimp)
                             (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 11 lr)
                               (expand "nth")
                               (expand "nth")
                               (inst 11 "y!1" "y!2")
                               (assert))
                              ("2" (assert))))))))
                        ("2" (grind))
                        ("3"
                         (skosimp*)
                         (bddsimp)
                         (("1"
                           (case "n!1=0")
                           (("1"
                             (replace -1 -5 lr)
                             (expand "nth")
                             (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 -5 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))
                          ("2"
                           (case "n!1=0")
                           (("1"
                             (replace -1 -5 lr)
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 -5 lr)
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))
                          ("3"
                           (case "n!1=0")
                           (("1"
                             (replace -1 11 lr)
                             (expand "nth")
                             (inst 11 "x!2" "y!1")
                             (assert))
                            ("2"
                             (case "n!1=1")
                             (("1"
                               (replace -1 12 lr)
                               (expand "nth")
                               (expand "nth")
                               (inst 12 "y!1" "y!2")
                               (assert))
                              ("2" (assert))))))))
                        ("4"
                         (grind)
                         (case "i!1=0")
                         (("1"
                           (replace -1 11 lr)
                           (expand "nth")
                           (propax))
                          ("2"
                           (case "i!1=1")
                           (("1"
                             (replace -1 12 lr)
                             (expand "nth")
                             (expand "nth")
                             (propax))
                            ("2"
                             (case "i!1=2")
                             (("1"
                               (replace -1 13 lr)
                               (expand "nth")
                               (expand "nth")
                               (expand "nth")
                               (propax))
                              ("2" (assert))))))))))))
                    ("2" (install-rewrites "walks") (assert))))))))
              ("2"
               (lemma "graphs[T].edge?_comm")
               (inst -1 "G!1" "x!1" "x!2")
               (prop)
               (inst 10 "walks[T].list2prewalk((:x!2,x!1,y!2:))")
               (("1"
                 (hide 8)
                 (install-rewrites "walks")
                 (assert)
                 (bddsimp)
                 (("1"
                   (skosimp*)
                   (bddsimp)
                   (("1"
                     (case "n!1=0")
                     (("1" (replace -1 -5 lr) (expand "nth") (assert))
                      ("2"
                       (case "n!1=1")
                       (("1"
                         (replace -1 -5 lr)
                         (expand "nth")
                         (expand "nth")
                         (assert))
                        ("2" (assert))))))
                    ("2"
                     (case "n!1=0")
                     (("1" (replace -1 -5 lr) (assert))
                      ("2"
                       (case "n!1=1")
                       (("1" (replace -1 -5 lr) (assert))
                        ("2" (assert))))))
                    ("3"
                     (case "n!1=0")
                     (("1" (replace -1 8 lr) (assert))
                      ("2"
                       (case "n!1=1")
                       (("1" (replace -1 9 lr) (assert))
                        ("2" (assert))))))))
                  ("2" (grind))
                  ("3"
                   (skosimp*)
                   (bddsimp)
                   (("1"
                     (case "n!1=0")
                     (("1" (replace -1 -4 lr) (assert))
                      ("2"
                       (case "n!1=1")
                       (("1" (replace -1 -4 lr) (assert))
                        ("2" (assert))))))
                    ("2"
                     (case "n!1=0")
                     (("1" (replace -1 -4 lr) (assert))
                      ("2"
                       (case "n!1=1")
                       (("1" (replace -1 -4 lr) (assert))
                        ("2" (assert))))))
                    ("3"
                     (case "n!1=0")
                     (("1"
                       (replace -1 9 lr)
                       (assert)
                       (inst 9 "x!2" "x!1")
                       (assert))
                      ("2"
                       (case "n!1=1")
                       (("1"
                         (replace -1 10 lr)
                         (assert)
                         (inst 10 "x!1" "y!2")
                         (assert))
                        ("2" (assert))))))))
                  ("4"
                   (grind)
                   (case "i!1=0")
                   (("1" (replace -1 9 lr) (assert))
                    ("2"
                     (case "i!1=1")
                     (("1" (replace -1 10 lr) (assert))
                      ("2"
                       (case "i!1=2")
                       (("1" (replace -1 11 lr) (assert))
                        ("2" (assert))))))))))
                ("2"
                 (hide 9)
                 (install-rewrites "walks")
                 (assert))))))))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "path_connected?")
   (bddsimp)
   (("1" (expand "empty?") (expand "empty?") (hide 2) (grind))
    ("2"
     (skosimp*)
     (case "x!1=y!1")
     (("1"
       (inst 2 "gen_seq1(G!1,x!1)")
       (("1" (hide 3) (install-rewrites "walks") (assert))
        ("2"
         (lemma "walks[T].gen_seq1_is_walk")
         (inst -1 "G!1" "x!1")
         (typepred "x!1")
         (bddsimp))))
      ("2"
       (case "x!2=y!2")
       (("1"
         (inst 4 "gen_seq1(complement(G!1),x!2)")
         (("1" (install-rewrites "walks") (assert))
          ("2"
           (lemma "walks[T].gen_seq1_is_walk")
           (inst -1 "complement(G!1)" "x!2")
           (typepred "x!2")
           (bddsimp))))
        ("2"
         (lemma "five_degrees_separation")
         (inst -1 "G!1" "x!1" "y!1")
         (bddsimp)
         (("1"
           (hide 5)
           (skosimp*)
           (inst 4 "w!1")
           (("1" (install-rewrites "walks") (assert) (bddsimp))
            ("2" (assert) (install-rewrites "walks") (assert))))
          ("2"
           (inst -1 "x!2" "y!2")
           (("1"
             (hide 4)
             (prop)
             (skosimp*)
             (inst 4 "w!1")
             (("1" (install-rewrites "walks") (assert) (prop))
              ("2" (expand "walk_from?") (prop))))
            ("2" (typepred "y!2") (expand "complement") (propax))
            ("3"
             (typepred "x!2")
             (expand "complement")
             (propax))))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "five_degrees_separation")
   (inst -1 "G!1" "x!1" "y!1")
   (bddsimp)
   (("1"
     (inst 1 "gen_seq1(G!1,x!1)")
     (hide 2)
     (install-rewrites "walks")
     (assert))
    ("2"
     (inst -1 "x!2" "y!2")
     (prop)
     (inst 2 "gen_seq1(G!1,x!2)")
     (hide 1)
     (install-rewrites "walks")
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: defs
script:
  (""
   (skosimp*)
   (expand "strong_transitive?")
   (expand "transitive?")
   (skosimp*)
   (inst -1 "x!1" "y!1" "z!1")
   (("1" (bddsimp) (assert))
    ("2"
     (lemma "graphs[T].edges_vert_in")
     (inst -1 "G!1" "dbl[T](y!1,z!1)" "y!1" "z!1")
     (("1" (expand "edge?") (assert))
      ("2"
       (inst?)
       (typepred "G!1")
       (inst -1 "dbl[T](y!1,z!1)")
       (("1" (expand "edge?") (assert)) ("2" (inst?) (assert))))))
    ("3"
     (lemma "graphs[T].edges_vert_in")
     (inst -1 "G!1" "dbl[T](y!1,z!1)" "y!1" "z!1")
     (("1" (expand "edge?") (bddsimp))
      ("2"
       (inst?)
       (lemma "graphs[T].edges_vert_in")
       (inst -1 "G!1" "dbl[T](y!1,z!1)" "y!1" "z!1")
       (("1" (expand "edge?") (assert))
        ("2"
         (inst?)
         (lemma "graphs[T].edges_vert_in")
         (inst -1 "G!1" "dbl[T](y!1,z!1)" "y!1" "z!1")
         (("1" (expand "edge?") (assert)) ("2" (inst?) (grind))))))))
    ("4"
     (grind)
     (lemma "graphs[T].edges_vert_in")
     (inst -1 "G!1" "dbl[T](x!1,y!1)" "x!1" "y!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "strong_transitive?")
   (skosimp*)
   (expand "transitive?")
   (inst -1 "x!1" "y!1" "z!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: made strong stronger
script:
  (""
   (skosimp*)
   (expand "strong_transitive?")
   (skosimp*)
   (expand "completion" 2)
   (expand "edge?" 2)
   (bddsimp)
   (("1"
     (expand "all_edges")
     (inst 2 "x!1" "z!1")
     (expand "completion")
     (expand "edge?")
     (bddsimp)
     (("1"
       (expand "all_edges")
       (skosimp*)
       (install-rewrites "doubletons")
       (assert)
       (grind)
       (lemma "doubletons[T].dbl_eq")
       (lemma "doubletons[T].dbl_eq")
       (inst -1 "x!3" "y!1" "z!1" "y!3")
       (inst -2 "x!2" "x!1" "y!1" "y!2")
       (assert))
      ("2"
       (expand "all_edges")
       (skosimp*)
       (lemma "doubletons[T].dbl_eq")
       (lemma "doubletons[T].dbl_eq")
       (inst -2 "x!2" "x!1" "y!1" "y!2")
       (inst -1 "x!3" "y!1" "z!1" "y!3")
       (assert))
      ("3" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: strong_is_same
script:
  (""
   (skosimp*)
   (lemma "los_graph[(vert(G!1))].los_graphic")
   (inst -1
    "lambda (r:(vert(G!1)),s:(vert(G!1))):  r=s or edge?(G!1)(r,s) "
    "lambda  (r:(vert(G!1)),s:(vert(G!1))): r=s or edge?(H!1)(r,s) ")
   (bddsimp)
   (("1"
     (hide -3 -4 -5 2)
     (apply-extensionality 1 :hide? t)
     (("1"
       (apply-extensionality 1 :hide? t)
       (expand "edge?")
       (iff)
       (bddsimp)
       (("1"
         (typepred "x!1")
         (skosimp*)
         (expand "completion")
         (expand "all_edges")
         (inst 2 "x!2" "y!1")
         (bddsimp)
         (("1"
           (hide -3 -4)
           (typepred "G!1")
           (inst -1 "x!1")
           (bddsimp)
           (grind))
          ("2" (hide -3 -4) (typepred "G!1") (inst -1 "x!1") (grind))
          ("3" (assert))))
        ("2"
         (typepred "x!1")
         (skosimp*)
         (inst -3 "x!2" "y!1")
         (("1" (replace -1 -3 rl) (assert))
          ("2"
           (expand "completion")
           (expand "all_edges")
           (skosimp*)
           (lemma "doubletons[T].dbl_eq")
           (inst -1 "x!3" "x!2" "y!1" "y!2")
           (assert))
          ("3"
           (expand "completion")
           (expand "all_edges")
           (skosimp*)
           (lemma "doubletons[T].dbl_eq")
           (inst -1 "x!3" "x!2" "y!1" "y!2")
           (assert))))))
      ("2" (grind))))
    ("2"
     (hide -3 -4 -5 1)
     (expand "completion")
     (apply-extensionality 1 :hide? t)
     (("1"
       (apply-extensionality 1 :hide? t)
       (replace -2 1 lr)
       (hide -2)
       (typepred "x!1")
       (typepred "H!1")
       (skosimp*)
       (inst -3 "x!2" "y!1")
       (("1"
         (bddsimp)
         (("1"
           (expand "all_edges")
           (inst 2 "x!2" "y!1")
           (bddsimp)
           (("1" (inst -1 "x!1") (grind)) ("2" (inst -1 "x!1") (grind))
            ("3" (assert))))
          ("2" (inst -1 "x!1") (expand "edge?") (assert))))
        ("2"
         (grind)
         (("1"
           (install-rewrites "graphs")
           (typepred "H!1")
           (inst -1 "x!1")
           (replace -3 -4 rl)
           (bddsimp)
           (assert)
           (inst -2 "y!1")
           (replace -4 -2 lr)
           (assert))
          ("2"
           (reveal -2)
           (reveal -2)
           (reveal -3)
           (delete -3)
           (inst -2 "x!3" "y!2")
           (expand "edge?")
           (propax))))
        ("3"
         (grind)
         (reveal -2 -3)
         (inst -1 "x!3" "y!2")
         (expand "edge?")
         (propax))))
      ("2" (lemma "all_edges_finite") (inst?))))
    ("3"
     (hide -2 -3 2 3)
     (skosimp*)
     (expand "union")
     (decompose-equality -2)
     (expand "union")
     (expand "member")
     (expand "completion")
     (expand "all_edges")
     (decompose-equality -1)
     (inst -1 "dbl[T](x!1,y!1)")
     (("1"
       (iff)
       (bddsimp)
       (("1" (expand "edge?") (assert)) ("2" (expand "edge?") (assert))
        ("3" (inst?) (assert))))
      ("2" (inst?) (assert))))
    ("4"
     (expand "edge?")
     (assert)
     (hide -2 -4 2 3)
     (skosimp*)
     (bddsimp)
     (("1" (assert)) ("2" (assert))
      ("3"
       (install-rewrites "doubletons[T]")
       (assert)
       (hide -3)
       (case "dbl[T](x!1, y!1)=dbl[T](y!1, x!1)")
       (("1" (replace -1 -2 lr) (propax))
        ("2"
         (expand "dbl")
         (assert)
         (grind)
         (apply-extensionality 1 :hide? t)
         (iff)
         (bddsimp))))
      ("4" (assert))))
    ("5"
     (hide -2 -4 2 3)
     (skosimp*)
     (expand "strong_transitive?")
     (inst -4 "x!1" "y!1" "z!1")
     (("1"
       (assert)
       (bddsimp)
       (("1" (assert))
        ("2"
         (expand "edge?")
         (bddsimp)
         (("1" (replace -1 -3 rl) (propax))
          ("2" (replace -1 -3 rl) (propax))))
        ("3" (replace -2 -1 lr) (propax))))
      ("2"
       (bddsimp)
       (("1" (assert)) ("2" (replace -1 -2 rl) (propax))
        ("3" (replace -2 -1 lr) (propax))
        ("4"
         (reveal -1)
         (hide -1)
         (expand "edge?")
         (lemma "graphs[T].edges_vert_in")
         (inst -1 "H!1" "dbl[T](y!1, z!1)" "y!1" "z!1")
         (bddsimp))))
      ("3"
       (bddsimp)
       (("1" (assert)) ("2" (replace -1 -2 rl) (propax))
        ("3" (replace -2 -1 lr) (propax))
        ("4"
         (lemma "graphs[T].edges_vert_in")
         (inst -1 "H!1" "dbl[T](y!1, z!1)" "y!1" "z!1")
         (("1" (assert)) ("2" (inst?) (assert))))))
      ("4"
       (lemma "graphs[T].edges_vert_in")
       (inst -1 "H!1" "dbl[T](x!1, y!1)" "x!1" "y!1")
       (("1" (assert)) ("2" (inst?) (assert))))))
    ("6"
     (assert)
     (hide -2 -3 -4 2 3)
     (grind)
     (lemma "doubletons[T].dbl_comm")
     (inst?)
     (replace -1 -4 lr)
     (propax))
    ("7"
     (hide -3 -4 2 3)
     (skosimp*)
     (expand "strong_transitive?")
     (inst -4 "x!1" "y!1" "z!1")
     (assert)
     (bddsimp)
     (("1" (assert)) ("2" (replace -1 -2 rl) (propax))
      ("3" (replace -2 -1 lr) (propax))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "t_close")
   (lemma
    "abstract_min[graph[T], num_edges[T],
                    LAMBDA (H: graph[T]):vert(H)=vert(G!1) and super(G!1)(H) AND strong_transitive?(H)].min_in")
   (replace -2 -1 rl)
   (beta -1)
   (propax))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: verts
script:
  (""
   (skosimp*)
   (lemma
    "abstract_min[graph[T], num_edges[T],
                    LAMBDA (H: graph[T]):vert(H)=vert(G!1) and super(G!1)(H) AND strong_transitive?(H)].min_is_min")
   (expand "t_close")
   (inst -1 "K!1")
   (bddsimp)
   (replace -5 -4 rl)
   (propax))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "subgraph?")
   (bddsimp)
   (("1"
     (expand "subset?")
     (expand "member")
     (skosimp*)
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (expand "super")
     (typepred "completion(G!1)")
     (inst -1 "x!1")
     (bddsimp)
     (hide -3)
     (typepred "t_close(G!1)")
     (inst -1 "x!1")
     (bddsimp)
     (typepred "x!1")
     (skosimp*)
     (copy -3)
     (inst -1 "x!2")
     (inst -4 "y!1")
     (case "x!1(x!2) and x!1(y!1)")
     (("1" (bddsimp) (replace -7 * lr) (hide -1 -2 -5 -7 -8) (grind))
      ("2"
       (hide -1 -3 -4 -5 -6 3)
       (install-rewrites "doubletons[T]")
       (assert))))
    ("2"
     (expand "subset?")
     (expand "member")
     (skosimp*)
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (replace -1 -4 lr)
     (hide -1 -2 -3)
     (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: lost
script:
  (""
   (skosimp*)
   (lemma "t_close_1")
   (copy -1)
   (inst -1 "G!1" "t_close(G!1)")
   (inst -2 "H!1" "t_close(H!1)")
   (bddsimp)
   (hide -2 -5)
   (apply-extensionality 1 :hide? t)
   (("1"
     (apply-extensionality 1 :hide? t)
     (iff 1)
     (bddsimp)
     (("1"
       (typepred "x!1")
       (skosimp*)
       (expand "union" -2)
       (expand "union" -2)
       (expand "member")
       (typepred "t_close(G!1)")
       (inst -1 "dbl[T](x!2, y!1)")
       (("1"
         (bddsimp)
         (("1"
           (copy -1)
           (inst -1 "x!2")
           (inst -2 "y!1")
           (bddsimp)
           (("1"
             (replace -5 * lr)
             (hide -4 -5 -6 -7 -8 -10)
             (install-rewrites "doubletons[T]")
             (assert)
             (inst?)
             (bddsimp))
            ("2"
             (copy -1)
             (replace -5 * lr)
             (bddsimp)
             (install-rewrites "doubletons[T]")
             (assert))
            ("3" (install-rewrites "doubletons[T]") (assert))
            ("4" (install-rewrites "doubletons[T]") (assert))))
          ("2"
           (copy -1)
           (inst -1 "x!2")
           (inst -2 "y!1")
           (install-rewrites "doubletons[T]")
           (assert)
           (inst?)
           (assert))
          ("3" (replace -1 -2 lr) (propax))
          ("4"
           (replace -1 -2 lr)
           (typepred "t_close(H!1)")
           (inst -1 "x!1")
           (replace -2 -1 lr)
           (bddsimp)
           (copy -2)
           (inst -1 "x!2")
           (inst -3 "y!1")
           (install-rewrites "doubletons[T]")
           (assert)
           (inst?)
           (assert))))
        ("2" (inst?) (assert))))
      ("2"
       (hide -3 -5)
       (expand "completion")
       (expand "union")
       (bddsimp)
       (hide -5)
       (decompose-equality -5)
       (inst -1 "x!1")
       (iff)
       (bddsimp)
       (lemma "t_close_3")
       (lemma "t_close_1")
       (lemma "t_close_1")
       (inst -1 "G!1" "t_close(G!1)")
       (inst -2 "H!1" "t_close(H!1)")
       (hide -3)
       (bddsimp)
       (expand "super")
       (expand "subgraph?")
       (bddsimp)
       (hide -2 -6)
       (hide -3 -6)
       (expand "union")
       (expand "member")
       (expand "subset?")
       (expand "member")
       (inst -2 "x!1")
       (inst -4 "x!1")
       (bddsimp))))
    ("2" (hide -2 -4) (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trans_complem")
   (lemma "trans_fill")
   (inst -1 "G!1" "H!1")
   (inst -2 "t_close(G!1)" "t_close(H!1)")
   (lemma "t_close_1")
   (lemma "t_close_1")
   (inst -1 "G!1" "t_close(G!1)")
   (inst -2 "H!1" "t_close(H!1)")
   (assert)
   (bddsimp)
   (("1"
     (hide-all-but (-8 1))
     (install-rewrites "complem")
     (lemma "t_close_3")
     (inst -1 "G!1")
     (reveal -2 -3)
     (expand "super")
     (hide -3)
     (expand "completion")
     (replace -1 -3 lr)
     (propax))
    ("2"
     (hide-all-but (-4 -5 -8 -9 2))
     (expand "super")
     (expand "completion")
     (reveal -1)
     (replace -1 -4 lr)
     (propax))
    ("3"
     (hide-all-but (-1 -7 -8 1))
     (expand "completion")
     (replace -1 1 lr)
     (propax))
    ("4" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "graph_connected[T].conn_eq_path")
   (copy -1)
   (inst -1 "H!1")
   (iff)
   (bddsimp)
   (hide -1)
   (inst -2 "G!1")
   (bddsimp)
   (hide 1)
   (expand "path_connected?")
   (bddsimp)
   (("1" (hide -1) (expand "empty?") (replace -3 -1 rl) (propax))
    ("2"
     (skosimp*)
     (inst -1 "x!1" "y!1")
     (("1"
       (skosimp*)
       (inst 2 "w!1")
       (("1" (assert))
        ("2"
         (expand "walk?")
         (typepred "w!1")
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (("1"
           (expand "subgraph?")
           (expand "subset?")
           (bddsimp)
           (expand "member")
           (skosimp*)
           (expand "edge?")
           (bddsimp)
           (("1"
             (inst -8 "dbl[T](seq(w!1)(n!1), seq(w!1)(1 + n!1))")
             (inst -3 "n!1")
             (bddsimp))
            ("2" (inst -3 "n!1") (assert))))
          ("2" (expand "verts_in?") (replace -7 -2 lr) (propax))))))
      ("2" (typepred "y!1") (replace -3 -1 rl) (propax))
      ("3" (typepred "x!1") (replace -3 -1 rl) (propax))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "graph_path_conn[T].path_implies_conn")
   (inst?)
   (bddsimp)
   (hide 2)
   (expand "path_connected?")
   (bddsimp)
   (("1" (expand "empty?") (expand "completion") (propax))
    ("2"
     (skosimp*)
     (case "NOT x!1=y!1")
     (("1"
       (inst 2 "gen_seq2(completion(G!1),x!1,y!1)")
       (("1" (install-rewrites "walks[T]") (assert))
        ("2"
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (("1"
           (skosimp*)
           (expand "gen_seq2")
           (typepred "n!1")
           (case "n!1=0")
           (("1"
             (lift-if 1)
             (assert)
             (expand "completion")
             (expand "all_edges")
             (expand "edge?")
             (inst 1 "x!1" "y!1")
             (typepred "x!1")
             (typepred "y!1")
             (expand "completion")
             (assert))
            ("2" (assert))))
          ("2" (grind :defs nil))))))
      ("2"
       (inst 1 "gen_seq1(completion(G!1),x!1)")
       (("1" (expand "gen_seq1") (propax))
        ("2"
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (("1" (expand "gen_seq1") (propax))
          ("2" (expand "verts_in?") (expand "gen_seq1") (propax))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "path_from?")
   (bddsimp)
   (expand "from?")
   (bddsimp)
   (inst 1 "add1(trunc1(trunc1(p!1)),y!1)")
   (("1"
     (bddsimp)
     (("1" (hide -1 -5) (install-rewrites "walks") (assert))
      ("2"
       (replace -3 1 rl)
       (hide -1 -5)
       (install-rewrites "walks")
       (assert))
      ("3"
       (replace -2 1 rl)
       (replace -3 1 rl)
       (hide -2 -5)
       (install-rewrites "walks")
       (assert))
      ("4"
       (expand "path?")
       (expand "finseq_appl")
       (bddsimp)
       (("1"
         (expand "add1")
         (expand "trunc1")
         (install-rewrites "walks")
         (assert)
         (skosimp*)
         (hide -1 -2 -7 1)
         (inst?)
         (("1"
           (bddsimp)
           (assert)
           (lift-if -4)
           (bddsimp)
           (("1"
             (assert)
             (lift-if -5)
             (bddsimp)
             (typepred "j!1")
             (case "length(add1(trunc1(trunc1(p!1)),y!1))=length(p!1)-1")
             (("1"
               (replace -1 -2 lr)
               (assert)
               (replace -4 -7 rl)
               (reveal -1)
               (inst -1 "i!1" "length(p!1)-1")
               (assert))
              ("2" (assert))))
            ("2"
             (typepred "i!1")
             (case "length(add1(trunc1(trunc1(p!1)),y!1))=length(p!1)-1")
             (("1"
               (replace -1 * lr)
               (lift-if -6)
               (hide -1)
               (case "j!1=length(p!1)-2")
               (("1"
                 (case "i!1=length(p!1)-2")
                 (("1" (assert)) ("2" (assert))))
                ("2"
                 (typepred "j!1")
                 (reveal -1)
                 (replace -1 -2 lr)
                 (hide -1)
                 (assert)
                 (reveal -2)
                 (inst -1 "length(p!1)-1" "j!1")
                 (assert))))
              ("2" (hide -1 -2 -5 2 3 4) (assert))))))
          ("2"
           (typepred "j!1")
           (case "length(add1(trunc1(trunc1(p!1)),y!1))=length(p!1)-1")
           (("1" (replace -1 * lr) (assert))
            ("2" (hide -1 -2 -5 2 3) (assert))))
          ("3"
           (case "length(add1(trunc1(trunc1(p!1)),y!1))=length(p!1)-1")
           (("1" (typepred "i!1") (replace -2 * lr) (assert))
            ("2" (hide -1 -2 -4 2 3) (assert))))))
        ("2"
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (("1"
           (skosimp*)
           (case "length(add1(trunc1(trunc1(p!1)),y!1))=length(p!1)-1")
           (("1"
             (replace -1 * lr)
             (assert)
             (expand "add1")
             (expand "trunc1")
             (lift-if 1)
             (expand* "^" min empty_seq)
             (lift-if 1)
             (assert)
             (inst -3 "n!1")
             (assert))
            ("2"
             (hide-all-but (-4 -5 -6 1))
             (install-rewrites "walks")
             (assert)
             (expand* "^" min empty_seq))))
          ("2"
           (hide -2 -3 -7)
           (install-rewrites "walks")
           (assert)
           (skosimp*)
           (grind)
           (replace -3 2 rl)
           (reveal -1)
           (inst -1 "length(p!1)-1"))))))))
    ("2"
     (hide -1 -5)
     (install-rewrites "walks")
     (assert)
     (expand* "^" min empty_seq)
     (assert))
    ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: same_strong
script:
  (""
   (skosimp*)
   (lemma "path_ops[T].walk_to_path_from")
   (lemma "walk_inductions[T].graph_induction_walk")
   (inst -2 "G!1" "x!1" "y!1" "w!1")
   (bddsimp)
   (skosimp*)
   (inst -1
    "lambda (p):( path_from?(G!1,p,x!1,y!1)implies edge?(G!1)(x!1,y!1))")
   (bddsimp)
   (("1" (inst -1 "p!1") (prop))
    ("2"
     (skosimp*)
     (lemma "short_path")
     (inst -1 "G!1" "w!2" "x!1" "y!1")
     (case "length(w!2)>2")
     (("1"
       (bddsimp)
       (("1" (skosimp*) (inst -5 "p1!1") (assert))
        ("2"
         (hide -3 -4 -5 2)
         (expand "path_from?")
         (bddsimp)
         (expand "path?")
         (bddsimp)
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (copy -3)
         (inst -1 "length(w!2)-3")
         (("1"
           (inst -4 "length(w!2)-2")
           (("1"
             (assert)
             (hide -6)
             (expand "strong_transitive?")
             (inst -6 "seq(w!2)(length(w!2) - 3)"
              "seq(w!2)(length(w!2) - 2)" "seq(w!2)(length(w!2) - 1)")
             (("1"
               (assert)
               (inst -5 "length(w!2)-3" "length(w!2)-1")
               (assert))
              ("2"
               (expand "verts_in?")
               (copy -3)
               (inst -1 "length(w!2)-3")
               (inst -4 "length(w!2)-1"))
              ("3"
               (hide -1 -4 -5 2)
               (install-rewrites "walks[T]")
               (assert)
               (inst -2 "length(w!2)-2"))
              ("4"
               (hide -1 -4 -5 2)
               (install-rewrites "walks[T]")
               (assert)
               (inst -2 "length(w!2)-3"))))
            ("2" (assert))))
          ("2" (assert))))))
      ("2"
       (hide -1 -2 -4 -5)
       (typepred "w!2")
       (case "length(w!2)=2")
       (("1"
         (expand "path_from?")
         (bddsimp)
         (expand "path?")
         (bddsimp)
         (hide -4)
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (install-rewrites "walks")
         (hide -6)
         (assert)
         (bddsimp)
         (inst -4 "0")
         (assert))
        ("2"
         (assert)
         (case "length(w!2)=1")
         (("1"
           (expand "path_from?")
           (bddsimp)
           (expand "path?")
           (expand "from?")
           (bddsimp)
           (assert))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "graph_connected[T].conn_eq_path")
   (inst?)
   (iff)
   (bddsimp)
   (apply-extensionality 1 :hide? t)
   (("1"
     (apply-extensionality 1 :hide? t)
     (typepred "x!1")
     (skosimp*)
     (iff)
     (bddsimp)
     (("1"
       (hide -3 -4 -5)
       (lemma "completion_is_subgraph")
       (inst?)
       (expand "subgraph?")
       (bddsimp)
       (expand "subset?")
       (expand "member")
       (hide -1)
       (inst?)
       (install-rewrites "complem")
       (assert))
      ("2"
       (hide -3)
       (expand "path_connected?")
       (bddsimp)
       (inst -3 "x!2" "y!1")
       (("1"
         (skosimp*)
         (lemma "trans_walk")
         (inst -1 "G!1" "w!1" "x!2" "y!1")
         (bddsimp)
         (("1" (expand "edge?") (bddsimp) (replace -4 -3 rl) (propax))
          ("2"
           (hide -1 -3 3)
           (typepred "w!1")
           (install-rewrites "walks")
           (assert)
           (assert))))
        ("2"
         (expand "completion")
         (expand "all_edges")
         (skosimp*)
         (lemma "doubletons[T].dbl_eq")
         (inst -1 "x!3" "x!2" "y!1" "y!2")
         (assert))
        ("3"
         (expand "completion")
         (expand "all_edges")
         (skosimp*)
         (lemma "doubletons[T].dbl_eq")
         (inst -1 "x!3" "x!2" "y!1" "y!2")
         (assert))))))
    ("2" (expand "completion") (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "transitive?")
   (skosimp*)
   (expand "union")
   (expand "edge?")
   (bddsimp)
   (("1"
     (expand "union")
     (expand "member")
     (bddsimp)
     (("1" (inst -2 "x!1" "y!1" "z!1") (bddsimp) (assert))
      ("2"
       (typepred "H!1")
       (typepred "K!1")
       (inst -1 "dbl[T](y!1, z!1)")
       (inst -2 "dbl[T](x!1, y!1)")
       (bddsimp)
       (inst -2 "y!1")
       (inst -4 "y!1")
       (assert)
       (expand "dbl")
       (hide -1 -3 -6 -7)
       (install-rewrites "finite_sets[T]")
       (assert)
       (inst -3 "y!1")
       (assert))
      ("3"
       (typepred "H!1")
       (typepred "K!1")
       (inst -1 "dbl[T](x!1, y!1)")
       (inst -2 "dbl[T](y!1, z!1)")
       (bddsimp)
       (inst -2 "y!1")
       (inst -4 "y!1")
       (hide -6 -7)
       (install-rewrites "finite_sets[T]")
       (assert)
       (inst -5 "y!1")
       (assert))
      ("4" (hide -1 -2) (inst -1 "x!1" "y!1" "z!1") (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "disjoint_trans")
   (lemma "strong_implies")
   (lemma "imply_strong")
   (inst -3 "H!1" "K!1")
   (copy -2)
   (inst -1 "H!1")
   (inst -3 "K!1")
   (bddsimp)
   (inst -3 "union(H!1,K!1)")
   (prop))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "transitive?")
   (skosimp*)
   (expand "subgraph" (-3 -4))
   (expand "edge?")
   (bddsimp)
   (("1"
     (inst -2 "x!1" "y!1" "z!1")
     (bddsimp)
     (("1" (expand "subgraph") (bddsimp) (grind)) ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "subgraph_trans")
   (lemma "strong_implies")
   (lemma "imply_strong")
   (inst -2 "G!1")
   (inst -3 "G!1" "V!1")
   (bddsimp)
   (inst -1 "subgraph(G!1,V!1)")
   (assert))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: line-up
script:
  (""
   (skosimp*)
   (lemma "t_close_1")
   (inst -1 "G!1" "t_close(G!1)")
   (bddsimp)
   (lemma "t_close_2")
   (inst -1 "G!1" "t_close(G!1)" "K!1")
   (bddsimp)
   (("1"
     (hide -1 -4 -5)
     (apply-extensionality 1 :hide? t)
     (("1"
       (expand "num_edges")
       (expand "subgraph?")
       (bddsimp)
       (case "card(edges(K!1))<= card(edges(t_close(G!1)))")
       (("1"
         (case "card(edges(K!1))= card(edges(t_close(G!1)))")
         (("1"
           (lemma "finite_sets[doubleton[T]].same_card_subset")
           (inst -1 "edges(K!1)" "edges(t_close(G!1))")
           (assert))
          ("2" (assert))))
        ("2"
         (lemma "finite_sets[doubleton[T]].card_subset")
         (inst -1 "edges(K!1)" "edges(t_close(G!1))")
         (prop))))
      ("2"
       (hide -1)
       (expand "subgraph?")
       (bddsimp)
       (hide -3 -5)
       (lemma "sets_lemmas[T].subset_antisymmetric")
       (replace -2 -3 rl)
       (inst -1 "vert(K!1)" "vert(t_close(G!1))")
       (assert))))
    ("2"
     (hide -1)
     (hide -2 -3)
     (hide 2)
     (grind :defs nil)
     (expand "subgraph?")
     (bddsimp)
     (hide -3 -5)
     (replace -1 -3 lr)
     (hide -1)
     (apply-extensionality 1 :hide? t)
     (iff)
     (expand "subset?")
     (expand "member")
     (inst -1 "x!1")
     (inst -2 "x!1")
     (bddsimp))
    ("3" (hide-all-but (-5 1)) (expand "super") (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: did not accept graph_ops
script:
  (""
   (skosimp*)
   (bddsimp)
   (("1"
     (lemma "subgraph_conn")
     (inst -1 "t_close(G!1)" "G!1")
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (("1" (replace -1 1 lr) (propax)) ("2" (expand "super") (propax))))
    ("2"
     (lemma "graph_connected[T].piece_eq_conn")
     (lemma "graph_connected[T].piece_eq_conn")
     (inst -1 "G!1")
     (inst -2 "t_close(G!1)")
     (iff)
     (bddsimp)
     (hide -2 2)
     (expand "piece_connected?" 1)
     (bddsimp)
     (("1"
       (lemma "t_close_1")
       (inst?)
       (inst -1 "t_close(G!1)")
       (bddsimp)
       (expand "piece_connected?")
       (bddsimp)
       (expand "empty?")
       (replace -1 -4 rl)
       (propax))
      ("2"
       (skosimp*)
       (expand "piece_connected?")
       (bddsimp)
       (inst -3 "subgraph(t_close(G!1),vert(H1!1))"
        "subgraph(t_close(G!1),vert(H2!1))")
       (bddsimp)
       (("1"
         (hide -1 -2 2 3)
         (lemma "t_close_1")
         (expand "empty?")
         (expand "empty?")
         (expand "member")
         (skosimp*)
         (inst -3 "x!1")
         (expand "subgraph")
         (bddsimp)
         (inst -1 "G!1" "t_close(G!1)")
         (bddsimp)
         (replace -1 1 lr)
         (hide -1 -2 -3)
         (reveal -6)
         (assert)
         (replace -1 1 lr)
         (expand "union")
         (expand "union")
         (expand "member")
         (propax))
        ("2"
         (hide -2 1 3)
         (expand "empty?")
         (expand "empty?")
         (expand "member")
         (skosimp*)
         (inst -3 "x!1")
         (lemma "t_close_1")
         (inst -1 "G!1" "t_close(G!1)")
         (bddsimp)
         (expand "subgraph")
         (replace -1 1 lr)
         (bddsimp)
         (hide -1 -2 -3)
         (assert)
         (replace -1 1 lr)
         (hide -1)
         (assert)
         (expand "union")
         (expand "union")
         (expand "member")
         (propax))
        ("3"
         (expand "subgraph")
         (lemma "t_close_1")
         (inst -1 "G!1" "t_close(G!1)")
         (bddsimp)
         (hide -2 -3 3)
         (replace -1 3 lr)
         (assert)
         (hide -1 -2)
         (expand "intersection")
         (expand "member")
         (expand "empty?")
         (expand "member")
         (skosimp*)
         (inst -1 "x!1")
         (assert))
        ("4"
         (lemma "t_close_1")
         (inst -1 "G!1" "t_close(G!1)")
         (bddsimp)
         (lemma "subgraph_trans_strong")
         (lemma "subgraph_trans_strong")
         (inst -1 "t_close(G!1)" "vert(H1!1)")
         (inst -2 "t_close(G!1)" "vert(H2!1)")
         (replace -3 * lr)
         (bddsimp)
         (("1"
           (lemma "disjoint_trans_strong")
           (inst -1 "subgraph(t_close(G!1), vert(H1!1))"
            "subgraph(t_close(G!1), vert(H2!1))")
           (bddsimp)
           (("1"
             (hide -1 -2)
             (lemma "t_close_2")
             (inst -1 "G!1" "t_close(G!1)"
              "union(subgraph(t_close(G!1), vert(H1!1)),
                                                         subgraph(t_close(G!1), vert(H2!1)))")
             (bddsimp)
             (("1"
               (apply-extensionality 4 :hide? t)
               (("1"
                 (expand "num_edges")
                 (case "subgraph?[T](union(subgraph(t_close(G!1), vert(H1!1)), subgraph(t_close(G!1), vert(H2!1))),t_close(G!1))")
                 (("1"
                   (expand "subgraph?")
                   (bddsimp)
                   (lemma "finite_sets[doubleton[T]].card_subset")
                   (inst -1
                    "edges
                                                      (union(subgraph(t_close(G!1), vert(H1!1)),
                                                             subgraph(t_close(G!1), vert(H2!1))))"
                    "edges(t_close(G!1))")
                   (bddsimp)
                   (assert)
                   (lemma "finite_sets[doubleton[T]].same_card_subset")
                   (inst -1
                    "edges
                                                      (union(subgraph(t_close(G!1), vert(H1!1)),
                                                             subgraph(t_close(G!1), vert(H2!1))))"
                    "edges(t_close(G!1))")
                   (bddsimp)
                   (("1" (assert)) ("2" (assert))))
                  ("2"
                   (hide -1 -2 -3 2)
                   (expand "subgraph?")
                   (bddsimp)
                   (("1"
                     (expand "super")
                     (expand "subset?")
                     (expand "member")
                     (skosimp*)
                     (expand "union")
                     (expand "union")
                     (expand "member")
                     (expand "subgraph")
                     (bddsimp))
                    ("2"
                     (expand "subset?")
                     (expand "member")
                     (skosimp*)
                     (hide -4)
                     (expand "union")
                     (expand "subgraph")
                     (expand "union")
                     (expand "member")
                     (bddsimp))))))
                ("2"
                 (hide -1 -2 -3)
                 (expand "super")
                 (expand "union")
                 (apply-extensionality 1 :hide? t)
                 (iff)
                 (bddsimp)
                 (("1"
                   (expand "union")
                   (expand "member")
                   (replace -2 -1 lr)
                   (copy -1)
                   (replace -5 -1 lr)
                   (beta -1)
                   (hide -5)
                   (expand "subgraph")
                   (replace -3 1 lr)
                   (assert))
                  ("2"
                   (hide -4)
                   (expand "union")
                   (expand "member")
                   (prop)
                   (("1" (expand "subgraph") (prop))
                    ("2" (expand "subgraph") (prop))))))))
              ("2"
               (hide -1 -2 -4 5)
               (expand "union")
               (decompose-equality -2)
               (expand "subgraph")
               (replace -3 1 lr)
               (assert)
               (hide -1 -3)
               (replace -1 1 lr)
               (apply-extensionality 1 :hide? t)
               (iff 1)
               (prop)
               (("1" (expand "union") (expand "member") (prop))
                ("2" (expand "union") (expand "member") (prop))))
              ("3"
               (hide -1 -2 5)
               (expand "super")
               (expand "subgraph?")
               (bddsimp)
               (("1"
                 (hide -2)
                 (expand "subset?")
                 (expand "member")
                 (skosimp*)
                 (inst -3 "x!1")
                 (bddsimp)
                 (expand "subgraph")
                 (expand "union")
                 (expand "union")
                 (expand "member")
                 (bddsimp)
                 (replace -4 -1 lr)
                 (beta -1)
                 (skosimp*)
                 (typepred "H1!1")
                 (typepred "H2!1")
                 (inst -1 "x!1")
                 (inst -2 "x!1")
                 (bddsimp)
                 (("1" (inst -2 "x!3") (assert))
                  ("2" (inst -2 "x!3") (assert))
                  ("3" (inst -2 "x!2") (assert))))
                ("2"
                 (hide -3 -4)
                 (expand "subset?")
                 (expand "member")
                 (skosimp*)
                 (expand "union")
                 (expand "subgraph")
                 (expand "union")
                 (expand "member")
                 (bddsimp)
                 (("1"
                   (reveal -2)
                   (expand "union")
                   (expand "union")
                   (expand "member")
                   (copy -2)
                   (replace -2 -3 lr)
                   (beta -3)
                   (assert))
                  ("2" (replace -2 1 lr) (propax))))))))
            ("2"
             (hide -1 -2 -3 -5 5)
             (expand "empty?")
             (expand "member")
             (skosimp*)
             (inst -4 "x!1")
             (expand "intersection")
             (expand "member")
             (expand "subgraph")
             (bddsimp))))
          ("2"
           (hide-all-but (-5 -6 1 2 3))
           (expand "union")
           (expand "union")
           (expand "member")
           (assert)
           (expand "subset?")
           (replace -1 1 lr)
           (expand "member")
           (skosimp*))
          ("3"
           (hide-all-but (-5 -6 1 2 3))
           (expand "subset?")
           (expand "empty?" -2)
           (skosimp*)
           (expand "member")
           (expand "union")
           (replace -2 1 lr)
           (beta 1)
           (expand "union")
           (expand "member")
           (assert))
          ("4"
           (hide -1 -2 -3 5 6)
           (expand "subset?")
           (expand "member")
           (skosimp*)
           (expand "union")
           (replace -3 1 lr)
           (beta 1)
           (expand "union")
           (expand "member")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: redo
script:
  (""
   (skosimp*)
   (lemma "trans_complem")
   (inst -1 "t_close(G!1)" "t_close(complement(G!1))")
   (bddsimp)
   (("1"
     (lemma "complete_conn")
     (inst -1 "t_close(G!1)")
     (bddsimp)
     (("1"
       (hide -2 2 3)
       (lemma "t_close_1")
       (inst -1 "G!1" "t_close(G!1)")
       (bddsimp)
       (expand "empty?")
       (replace -1 -4 lr)
       (propax))
      ("2"
       (replace -2 -1 rl)
       (lemma "closure_connect")
       (inst -1 "G!1")
       (assert))))
    ("2"
     (lemma "complete_conn")
     (inst -1 "t_close(G!1)")
     (bddsimp)
     (("1"
       (lemma "t_close_1")
       (inst -1 "G!1" "t_close(G!1)")
       (bddsimp)
       (expand "empty?")
       (replace -1 -4 lr)
       (propax))
      ("2"
       (replace -2 -1 rl)
       (lemma "closure_connect")
       (inst -1 "complement(G!1)")
       (assert))))
    ("3"
     (hide 3 4)
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (expand "completion")
     (replace -1 1 lr)
     (expand "union")
     (bddsimp)
     (("1"
       (expand "union")
       (expand "member")
       (lemma "t_close_1")
       (inst -1 "complement(G!1)" "t_close(complement(G!1))")
       (bddsimp)
       (expand "super")
       (expand "subgraph?")
       (bddsimp)
       (hide -1 -2 -4 -6 -8)
       (case "union(edges(G!1),edges(complement(G!1)))=all_edges(vert(G!1))")
       (("1"
         (name "tc" "t_close")
         (replace -1 * lr)
         (apply-extensionality 1 :hide? t)
         (iff)
         (prop)
         (("1"
           (typepred "x!1")
           (skosimp*)
           (expand "all_edges")
           (inst 2 "x!2" "y!1")
           (bddsimp)
           (("1"
             (typepred "tc(G!1)")
             (inst -1 "x!1")
             (bddsimp)
             (inst -2 "y!1")
             (replace -3 -2 lr)
             (expand "dbl")
             (replace -7 -2 lr)
             (propax))
            ("2"
             (typepred "tc(G!1)")
             (inst -1 "x!1")
             (bddsimp)
             (inst -2 "x!2")
             (hide -5 -6)
             (assert)
             (replace -2 1 lr)
             (expand "dbl")
             (propax))
            ("3" (assert))))
          ("2"
           (typepred "tc(complement(G!1))")
           (inst -1 "x!1")
           (prop)
           (typepred "x!1")
           (skosimp*)
           (copy -2)
           (inst -1 "x!2")
           (inst -3 "y!1")
           (replace -2 * lr)
           (prop)
           (("1"
             (hide -6 -7 -9)
             (lemma "t_close_1")
             (inst -1 "complement(G!1)" "t_close(complement(G!1))")
             (prop)
             (expand "tc")
             (replace -1 (-4 -5) lr)
             (hide -1 -2 -3 -8 -9)
             (expand "complement" (-1 -2))
             (expand "all_edges")
             (inst 2 "x!2" "y!1")
             (prop))
            ("2" (expand "dbl") (propax)) ("3" (expand "dbl") (propax))
            ("4" (expand "dbl") (propax))))
          ("3"
           (lemma "t_close_1")
           (lemma "t_close_1")
           (inst -1 "G!1" "t_close(G!1)")
           (inst -2 "complement(G!1)" "t_close(complement(G!1))")
           (bddsimp)
           (hide -3 -6)
           (replace -6 * lr)
           (expand "super")
           (expand "subgraph?")
           (bddsimp)
           (expand "subset?")
           (expand "member")
           (inst -8 "x!1")
           (inst -9 "x!1")
           (expand "union")
           (expand "member")
           (decompose-equality -7)
           (inst -1 "x!1")
           (iff -1)
           (prop))))
        ("2"
         (hide -1 -2 -3 2)
         (assert)
         (expand "union")
         (expand "member")
         (expand "complement")
         (expand "difference")
         (expand "member")
         (expand "all_edges")
         (apply-extensionality 1 :hide? t)
         (iff 1)
         (prop)
         (typepred "x!1")
         (skosimp*)
         (typepred "G!1")
         (inst -1 "x!1")
         (prop)
         (copy -1)
         (inst -1 "x!2")
         (inst -2 "y!1")
         (inst 2 "x!2" "y!1")
         (prop)
         (("1" (assert) (replace -2 2 lr) (expand "dbl") (propax))
          ("2" (replace -2 2 lr) (expand "dbl") (propax))
          ("3" (replace -1 2 lr) (expand "dbl") (propax))
          ("4" (replace -1 2 lr) (expand "dbl") (propax))))))
      ("2"
       (lemma "t_close_1")
       (inst -1 "complement(G!1)" "t_close(complement(G!1))")
       (bddsimp)
       (replace -4 1 lr)
       (replace -1 1 lr)
       (hide-all-but (1 2))
       (expand "union")
       (apply-extensionality 1 :hide? t)
       (iff)
       (prop)
       (("1" (expand "member") (propax))
        ("2" (expand "complement") (expand "member") (propax))
        ("3" (expand "member") (propax))))))
    ("4"
     (lemma "t_close_1")
     (inst -1 "complement(G!1)" "t_close(complement(G!1))")
     (bddsimp))
    ("5" (lemma "t_close_1") (inst -1 "G!1" "t_close(G!1)") (bddsimp))
    ("6"
     (lemma "t_close_1")
     (inst -1 "complement(G!1)" "t_close(complement(G!1))")
     (assert)
     (bddsimp)
     (hide -2 -3)
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (case " vert(complement(G!1))=vert(G!1)")
     (("1" (assert))
      ("2"
       (hide-all-but (1 3))
       (assert)
       (expand "complement")
       (propax))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "subgraph?")
   (bddsimp)
   (("1"
     (expand "subset?")
     (expand "member")
     (skosimp*)
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (expand "p_close")
     (lemma "trans_walk")
     (inst -1 "t_close(G!1)" "_" "_" "_")
     (typepred "x!1")
     (skosimp*)
     (inst -6 "x!2" "y!1")
     (bddsimp)
     (("1"
       (skosimp*)
       (inst -2 "p!1" "x!2" "y!1")
       (expand "super")
       (expand "subgraph?")
       (bddsimp)
       (("1" (expand "edge?") (assert))
        ("2"
         (hide -2 3)
         (hide -3)
         (expand "subset?")
         (expand "member")
         (expand "walk_from?")
         (bddsimp)
         (expand "walk?")
         (expand "finseq_appl")
         (bddsimp)
         (("1"
           (skosimp*)
           (expand "edge?")
           (inst -8 "n!1")
           (bddsimp)
           (inst -7 "dbl[T](seq(p!1)(n!1), seq(p!1)(1 + n!1))")
           (prop))
          ("2"
           (expand "verts_in?")
           (skosimp*)
           (hide -5 -7)
           (inst -5 "i!1")
           (replace -4 -5 rl)
           (propax))))))
      ("2"
       (hide-all-but (-1 1 2))
       (replace -1 2 lr)
       (expand "dbl")
       (propax))
      ("3"
       (hide-all-but (-1 1 2))
       (replace -1 2 lr)
       (expand "dbl")
       (propax))
      ("4" (assert))))
    ("2"
     (expand "subset?")
     (expand "member")
     (skosimp*)
     (expand "p_close")
     (lemma "t_close_1")
     (inst -1 "G!1" "t_close(G!1)")
     (bddsimp)
     (replace -1 -4 rl)
     (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "strong_transitive?")
   (skosimp*)
   (expand "edge?")
   (bddsimp)
   (("1"
     (expand "p_close")
     (skosimp*)
     (hide -1 -2)
     (install-rewrites "doubletons[T]")
     (hide 5)
     (assert)
     (reveal *)
     (bddsimp)
     (("1" (replace -3 * lr) (replace -4 * lr) (propax))
      ("2"
       (replace -3 * lr)
       (replace -4 * lr)
       (hide -3 -4)
       (inst -1 "x!1" "y!1")
       (inst -2 "y!1" "z!1")
       (lemma "walks[T].walk_merge")
       (bddsimp)
       (("1"
         (skosimp*)
         (lemma "walks[T].walk?_reverse")
         (inst -1 "G!1" "y!1" "z!1" "p!2")
         (bddsimp)
         (skosimp*)
         (inst -3 "G!1" "w!1" "p!1" "x!1" "z!1" "y!1")
         (prop))
        ("2" (hide -1 -2 1) (assert)) ("3" (hide -1 -2 1) (assert))
        ("4" (assert)) ("5" (hide -1 -2 1) (expand "dbl") (propax))
        ("6" (hide -1 1) (expand "dbl") (propax))
        ("7" (hide -1 1) (expand "dbl") (propax)) ("8" (assert))
        ("9" (hide -1 1) (expand "dbl") (propax))
        ("10" (hide -1 1) (expand "dbl") (propax))
        ("11" (hide -1 1) (expand "dbl") (propax)) ("12" (assert))
        ("13" (assert)) ("14" (assert)) ("15" (assert)) ("16" (assert))))
      ("3"
       (replace -4 * lr)
       (replace -3 * lr)
       (inst -1 "x!1" "y!1")
       (inst -2 "y!1" "z!1")
       (hide -3 -4)
       (bddsimp)
       (("1"
         (skosimp*)
         (lemma "walks[T].walk?_reverse")
         (lemma "walks[T].walk_merge")
         (inst -2 "G!1" "y!1" "z!1" "p!2")
         (bddsimp)
         (skosimp*)
         (inst -1 "G!1" "p!1" "w!1" "z!1" "x!1" "y!1")
         (bddsimp))
        ("2" (hide -1 1) (expand "dbl") (propax))
        ("3" (expand "dbl") (propax)) ("4" (assert))
        ("5" (expand "dbl") (propax)) ("6" (expand "dbl") (propax))
        ("7" (expand "dbl") (propax)) ("8" (expand "dbl") (propax))
        ("9" (expand "dbl") (propax)) ("10" (expand "dbl") (propax))
        ("11" (expand "dbl") (propax)) ("12" (assert)) ("13" (assert))
        ("14" (assert)) ("15" (assert)) ("16" (assert))))
      ("4" (replace -3 * lr) (replace -4 * lr) (propax))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (bddsimp)
   (("1"
     (expand "super")
     (expand "subgraph?")
     (bddsimp)
     (("1"
       (expand "subset?")
       (expand "member")
       (skosimp*)
       (replace -1 * lr)
       (hide -1)
       (expand "p_close")
       (skosimp*)
       (lemma "walks[T].edge_to_walk")
       (inst -1 "G!1" "x!2" "y!1")
       (expand "edg")
       (bddsimp)
       (("1"
         (inst 2 "gen_seq2(G!1, x!2, y!1)")
         (expand "walk_from?")
         (bddsimp)
         (("1" (hide -1) (install-rewrites "walks[T]") (assert))
          ("2" (hide -1) (install-rewrites "walks[T]") (assert))))
        ("2"
         (hide 3)
         (install-rewrites "graphs[T]")
         (assert)
         (lemma "graphs[T].edge_has_2_verts")
         (inst -1 "x!1" "x!2" "y!1")
         (bddsimp)
         (("1"
           (replace -3 -4 lr)
           (lemma "graphs[T].edge?_comm")
           (inst -1 "G!1" "x!2" "y!1")
           (bddsimp)
           (("1" (expand "edge?") (propax))
            ("2" (expand "edge?") (propax))))
          ("2" (assert))))
        ("3" (assert))))
      ("2"
       (replace -1 * lr)
       (hide -1)
       (expand "subset?")
       (expand "member")
       (expand "p_close")
       (grind))))
    ("2" (replace -1 * lr) (hide -1) (expand "p_close") (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "t_close_4")
   (inst -1 "G!1" "p_close(G!1)")
   (lemma "p_subgraph_t")
   (inst -1 "G!1")
   (lemma "p_transitive")
   (inst?)
   (lemma "p_close_1")
   (inst -1 "G!1" "p_close(G!1)")
   (expand "super")
   (bddsimp)
   (assert))


proof_type: f_proof
decl_type: formula
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: some change
script:
  (""
   (skosimp*)
   (lemma "p_close_trans")
   (copy -1)
   (inst -1 "G!1")
   (inst -2 "H!1")
   (replace -1 1 lr)
   (replace -2 1 lr)
   (hide -1 -2)
   (lemma "p_close_1")
   (lemma "p_close_1")
   (inst -1 "G!1" "p_close(G!1)")
   (inst -2 "H!1" "p_close(H!1)")
   (bddsimp)
   (expand "super")
   (expand "subgraph?")
   (bddsimp)
   (("1"
     (expand "subset?" 1)
     (expand "member")
     (skosimp*)
     (expand "p_close" (-9 1))
     (skosimp*)
     (inst -9 "x!2" "y!1")
     (bddsimp)
     (("1"
       (skosimp*)
       (inst 2 "p!1")
       (hide -1 -2 -3 -4 -5 -6)
       (expand "walk_from?")
       (bddsimp)
       (expand "walk?")
       (expand "finseq_appl")
       (bddsimp)
       (("1"
         (skosimp*)
         (inst -8 "n!1")
         (bddsimp)
         (expand "edge?")
         (bddsimp)
         (expand "subset?")
         (expand "member")
         (inst -2 "dbl[T](seq(p!1)(n!1), seq(p!1)(1 + n!1))")
         (bddsimp))
        ("2"
         (hide -2 -8)
         (expand "verts_in?")
         (skosimp*)
         (inst -6 "i!1")
         (expand "subset?")
         (expand "member")
         (inst -1 "seq(p!1)(i!1)")
         (prop))))
      ("2" (assert))))
    ("2" (replace -1 1 lr) (replace -4 1 lr) (propax))))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "subset?(difference[doubleton[T]](all_edges(vert(G!1)), edges(G!1)),all_edges(vert(G!1)))")
   (("1"
     (lemma "finite_sets[doubleton[T]].finite_subset")
     (inst -1 "all_edges(vert(G!1))"
      "difference[doubleton[T]](all_edges(vert(G!1)), edges(G!1))")
     (("1" (bddsimp))
      ("2" (lemma "all_edges_finite") (inst -1 "vert(G!1)"))))
    ("2"
     (lemma "sets_lemmas[doubleton[T]].difference_subset")
     (inst -1 "all_edges(vert(G!1))" "edges(G!1)"))))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "completion(G!1)")
   (lemma "completion_is_transitive")
   (inst -1 "G!1")
   (bddsimp)
   (("1"
     (hide -1)
     (ground)
     (expand "super")
     (assert)
     (expand "completion")
     (expand "subgraph?")
     (assert)
     (bddsimp)
     (("1"
       (expand "subset?")
       (skosimp*)
       (expand "member")
       (expand "all_edges")
       (typepred "x!1")
       (tcc)
       (("1"
         (grind)
         (lemma "graphs[T].edges_vert_in")
         (inst?)
         (inst?)
         (assert))
        ("2"
         (lemma "graphs[T].edges_vert_in")
         (inst?)
         (inst?)
         (assert))))
      ("2" (expand "subset?") (skosimp*))))
    ("2" (hide -1) (grind))))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "all_edges_finite")
   (inst -1 "vert(G!1)")
   (lemma "finite_sets[doubleton[T]].finite_subset")
   (inst -1 "all_edges(vert(G!1))"
    "{e: doubleton[T] |
                  FORALL (x, y: T):
                    x /= y AND e(x) AND e(y) IMPLIES
                     (EXISTS (p: prewalk[T]): walk_from?[T](G!1, p, x, y))}")
   (bddsimp)
   (hide 2)
   (expand "all_edges")
   (expand "subset?")
   (expand "member")
   (skosimp*)
   (typepred "x!1")
   (skosimp*)
   (inst -2 "x!2" "y!1")
   (replace -1 -2 lr)
   (expand "dbl")
   (bddsimp)
   (("1"
     (inst 2 "x!2" "y!1")
     (bddsimp)
     (("1"
       (hide -3)
       (install-rewrites "walks[T]")
       (assert)
       (skosimp*)
       (assert)
       (inst -4 "length(p!1)-1")
       (replace -3 -4 lr)
       (propax))
      ("2"
       (hide -3)
       (skosimp*)
       (expand "walk_from?")
       (expand "walk?")
       (bddsimp)
       (expand "verts_in?")
       (inst -4 "0")
       (replace -2 -4 lr)
       (propax))
      ("3" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: graphs
theory: complem
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "e!1")
   (skosimp*)
   (inst -2 "x!2" "y!1")
   (bddsimp)
   (("1"
     (skosimp*)
     (expand "walk_from?")
     (bddsimp)
     (replace -1 -5 lr)
     (expand "dbl")
     (expand "walk?")
     (bddsimp)
     (("1"
       (hide -5)
       (expand "verts_in?")
       (inst -4 "0")
       (replace -2 -4 lr)
       (assert))
      ("2"
       (hide -5)
       (expand "verts_in?")
       (inst -4 "length(p!1)-1")
       (replace -3 -4 lr)
       (assert))))
    ("2" (replace -1 2 lr) (expand "dbl") (propax))
    ("3" (replace -1 2 lr) (assert) (expand "dbl") (propax))
    ("4" (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: easy_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "sep_num")
   (lemma "injection_and_cardinal[Path_from(G!1,s!1,t!1),T]")
   (inst?)
   (assert)
   (hide 2)
   (case "FORALL (p: (ips!1)):
                  nonempty?(intersection(min_sep_set(G!1, s!1, t!1),internal_verts(p)))")
   (("1"
     (expand "intersection")
     (expand "member")
     (inst 1
      "(LAMBDA (p: (ips!1)): choose({x: T | min_sep_set[T](G!1, s!1, t!1)(x) AND internal_verts(p)(x)}))")
     (("1"
       (expand "injective?")
       (skosimp*)
       (typepred "x1!1")
       (typepred "x2!1")
       (expand "path_from?")
       (flatten)
       (expand "ind_path_set?")
       (inst -12 "x1!1" "x2!1")
       (assert)
       (expand "independent?")
       (hide -1 -2 -3 -4 -5 -6 -7 -8)
       (typepred
        "choose({x: T |
                     min_sep_set[T](G!1, s!1, t!1)(x) AND internal_verts(x1!1)(x)})")
       (("1"
         (expand "internal_verts")
         (skosimp*)
         (hide -1)
         (replace -3 * rl)
         (hide -3)
         (typepred
          "choose({x: T |
                       min_sep_set[T](G!1, s!1, t!1)(x) AND internal_verts(x2!1)(x)})")
         (("1"
           (hide -1)
           (expand "internal_verts")
           (skosimp*)
           (replace -3 * rl)
           (hide -3)
           (expand "finseq_appl")
           (inst -8 "i!1" "i!2")
           (assert))
          ("2"
           (expand "nonempty?")
           (expand "empty?")
           (expand "member")
           (inst -4 "x2!1")
           (skosimp*)
           (inst?)
           (assert)
           (expand "internal_verts")
           (expand "finseq_appl")
           (inst + "i!2")
           (assert))))
        ("2" (inst -1 "x1!1"))))
      ("2" (skosimp*) (assert))))
    ("2"
     (skosimp*)
     (expand "nonempty?")
     (lemma "min_sep_set_seps")
     (inst?)
     (assert)
     (hide -4 1)
     (expand "separates")
     (flatten)
     (inst 3 "p!1")
     (hide -2 1 2)
     (typepred "p!1")
     (expand "path_from?")
     (flatten)
     (expand "walk_from?")
     (expand "from?")
     (flatten)
     (assert)
     (lemma "walk?_del_verts_not")
     (inst?)
     (expand "path?")
     (flatten)
     (assert)
     (hide -1 -2 -3 -4 -5 -6 2)
     (reveal 2 3)
     (name-replace "MSS" "min_sep_set(G!1, s!1, t!1)")
     (expand "intersection")
     (expand "empty?")
     (expand "member")
     (expand "verts_of")
     (expand "internal_verts")
     (expand "finseq_appl")
     (skosimp*)
     (inst -3 "x!1")
     (assert)
     (inst?)
     (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: finite_sets_card_from
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: How diff
script:
  (""
   (skosimp*)
   (expand "extend")
   (lemma "finite_sets_card_eq[T1,T2].card_eq_bij")
   (inst?)
   (("1"
     (prop)
     (hide 2 3)
     (inst 1 "lambda (t:(F!1)):t")
     (("1"
       (expand "bijective?")
       (prop)
       (("1" (expand "injective?") (grind))
        ("2"
         (expand "surjective?")
         (skosimp*)
         (typepred "y!1")
         (inst 1 "y!1"))))
      ("2" (skosimp*) (prop))))
    ("2"
     (hide 2)
     (lemma "extend_set_props[T1,T2].finite_extension")
     (inst -1 "F!1")
     (typepred "F!1")
     (prop)
     (hide -2 -3)
     (expand "extend")
     (propax))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "B")
   (prop)
   (copy -1)
   (inst -3 "min_sep_set(G!1,s!1,t!1)")
   (expand "sep_num")
   (lemma "min_sep_set_card")
   (inst?)
   (("1"
     (bddsimp)
     (lemma "min_sep_set_seps")
     (inst?)
     (prop)
     (expand "good?")
     (prop))
    ("2" (expand "good?") (bddsimp)) ("3" (expand "good?") (bddsimp))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "B")
   (prop)
   (skosimp*)
   (lemma "min_sep_set_card")
   (inst?)
   (("1" (expand "sep_num") (prop) (assert))
    ("2" (expand "good?") (prop)) ("3" (expand "good?") (prop))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "card_extension[T,(W!1)]")
   (inst -1 "V!1")
   (expand "restrict")
   (expand "extend")
   (case "(LAMBDA (t: T): IF (W!1)(t) THEN V!1(t) ELSE FALSE ENDIF)=V!1")
   (("1" (replace -1 1 lr) (propax))
    ("2"
     (hide 2)
     (apply-extensionality 1 :hide? t)
     (iff)
     (prop)
     (expand "subset?")
     (inst? -3)
     (expand "member")
     (prop))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: sec
script:
  (""
   (skosimp*)
   (lemma "easy_menger[T]")
   (expand "many_ind")
   (skosimp*)
   (inst -1 "G!1" "s!1" "t!1" "ips!1")
   (expand "B")
   (prop)
   (("1"
     (expand "st_path_set?")
     (lemma
      "finite_sets_card_eq[prewalk,Path_from[T](G!1, s!1, t!1)].card_eq_bij")
     (expand "restrict")
     (inst -1 "ips!1"
      "LAMBDA (s: Path_from[T](G!1, s!1, t!1)): ips!1(s)")
     (("1"
       (prop)
       (("1"
         (replace -1 -3 rl)
         (replace -7 -3 lr)
         (lemma "min_sep_set_card")
         (skosimp*)
         (inst?)
         (("1" (expand "sep_num") (prop) (assert))
          ("2" (expand "good?") (prop)) ("3" (expand "good?") (prop))))
        ("2"
         (hide -1 -3 -5 2 3)
         (inst 1 "LAMBDA (p1:(ips!1)) :p1")
         (("1" (grind)) ("2" (grind))))))
      ("2"
       (hide -1 -3 -5 2)
       (typepred "ips!1")
       (lemma
        "restrict_set_props[prewalk,Path_from[T](G!1, s!1, t!1)].restrict_finite")
       (inst -1 "ips!1")
       (prop)
       (expand "restrict")
       (propax))))
    ("2" (expand "good?") (prop)) ("3" (hide -4 1) (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "B")
   (prop)
   (inst?)
   (prop)
   (("1" (assert))
    ("2"
     (expand "separates")
     (expand "green?")
     (prop)
     (skosimp*)
     (lemma "walk_to_path")
     (inst -1 "del_verts(G!1,V!1)" "s!1" "t!1")
     (prop)
     (("1"
       (skosimp*)
       (hide -3 -4 -5)
       (expand "walk_from?")
       (prop)
       (inst 3 "p!1")
       (expand "path_from?")
       (prop)
       (expand "from?")
       (assert))
      ("2" (hide -2 -3 4) (inst 1 "w!1"))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "B_many")
   (prop)
   (expand "many_ind")
   (lemma "sep_set_small")
   (expand "B")
   (prop)
   (inst -1 "G!1" "_" "1" "s!1" "t!1")
   (inst -1 "emptyset[T]")
   (prop)
   (("1"
     (expand "del_verts")
     (expand "difference")
     (expand "member")
     (assert)
     (expand "emptyset")
     (skosimp*)
     (inst 1 "singleton[prewalk](p!1)")
     (hide -2 -3)
     (lemma "card_singleton[prewalk]")
     (inst -1 "p!1")
     (prop)
     (("1"
       (expand "ind_prewalk_set?")
       (skosimp*)
       (expand "singleton")
       (assert))
      ("2"
       (expand "st_path_set?")
       (hide -1)
       (skosimp*)
       (expand "singleton")
       (replace -1 * lr)
       (install-rewrites "paths")
       (assert))))
    ("2"
     (hide -1 -2 2)
     (lemma "card_emptyset[T]")
     (assert)
     (expand "green?")
     (prop)
     (("1" (assert) (expand "emptyset") (propax))
      ("2" (expand "emptyset") (propax))))
    ("3" (lemma "card_emptyset[T]") (assert))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tight?")
   (expand "subset?")
   (skosimp*)
   (expand "member")
   (inst -1 "x!1")
   (inst -2 "x!1")
   (prop))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: good
script:
  (""
   (skosimp*)
   (expand "tight?")
   (expand "subset?")
   (expand "member")
   (skosimp*)
   (expand "intersection")
   (expand "member")
   (inst 2 "remove(x!1,W!1)")
   (prop)
   (("1" (skosimp*) (expand "remove") (prop) (expand "member") (propax))
    ("2"
     (expand "remove")
     (expand "member")
     (hide -2 1)
     (grind)
     (decompose-equality -1)
     (inst -1 "x!1")
     (iff)
     (prop))
    ("3"
     (expand "separates")
     (prop)
     (("1" (expand "remove") (expand "member") (prop))
      ("2" (expand "remove") (expand "member") (prop))
      ("3"
       (skosimp*)
       (expand "walk_from?")
       (prop)
       (inst 4 "w!1")
       (prop)
       (case "verts_of(w!1)(x!1)")
       (("1"
         (hide -4)
         (hide 1)
         (expand "path_verts")
         (expand "verts_of")
         (skosimp*)
         (expand "finseq_appl")
         (inst 1 "w!1^(0,i!1)")
         (("1"
           (expand "walk_from?")
           (prop)
           (("1" (expand* "^" min empty_seq))
            ("2" (expand* "^" min empty_seq))
            ("3"
             (reveal -1)
             (lemma "walk?_caret")
             (inst -1 "G!1" "0" "i!1" "w!1")
             (typepred "i!1")
             (assert)
             (lemma "walk?_subgraph")
             (inst -1 "G!1" "del_verts(G!1, remove(x!1, W!1))" "w!1")
             (prop)
             (hide -2 2 3)
             (assert)
             (install-rewrites "finite_sets[T]")
             (assert)
             (prop)
             (("1" (skosimp*)) ("2" (skosimp*))))))
          ("2" (grind))))
        ("2"
         (hide 3)
         (install-rewrites "walks")
         (expand "walk?")
         (expand "finseq_appl")
         (prop)
         (("1"
           (expand "verts_in?")
           (skosimp*)
           (expand "del_verts")
           (typepred "i!1")
           (hide -5)
           (inst -4 "i!1")
           (expand "verts_of")
           (expand "finseq_appl")
           (expand "difference")
           (expand "member")
           (prop)
           (inst 1 "i!1")
           (expand "remove")
           (expand "member")
           (prop)
           (assert))
          ("2"
           (skosimp*)
           (inst -5 "n!1")
           (prop)
           (expand "verts_of")
           (expand "finseq_appl")
           (expand "edge?")
           (prop)
           (hide -5)
           (expand "del_verts")
           (prop)
           (skosimp*)
           (copy -4)
           (inst -1 "seq(w!1)(n!1)")
           (inst -5 "seq(w!1)(n!1 + 1)")
           (("1"
             (prop)
             (("1" (assert)) ("2" (assert)) ("3" (assert))
              ("4"
               (assert)
               (prop)
               (("1" (assert)) ("2" (assert)) ("3" (assert))
                ("4" (assert) (inst 3 "1+n!1") (assert))
                ("5" (inst 3 "n!1") (assert))
                ("6" (inst 3 "n!1") (assert))
                ("7" (replace -1 -2 lr) (propax))
                ("8" (replace -1 -2 lr) (propax))))))
            ("2" (grind))))))))))
    ("4"
     (skosimp*)
     (hide -2 2)
     (expand "remove")
     (expand "member")
     (prop))
    ("5"
     (hide -2 1)
     (expand "remove")
     (decompose-equality -1)
     (inst?)
     (expand "member")
     (propax))
    ("6"
     (expand "separates")
     (prop)
     (("1" (expand "remove") (expand "member") (prop))
      ("2" (expand "remove") (expand "member") (prop))
      ("3"
       (skosimp*)
       (expand "walk_from?")
       (prop)
       (inst 4 "w!1")
       (prop)
       (case "verts_of(w!1)(x!1)")
       (("1"
         (hide -4)
         (hide 1)
         (expand "path_verts")
         (expand "verts_of")
         (expand "finseq_appl")
         (skosimp*)
         (inst 1 "rev(w!1)^(0,length(w!1)-1-i!1)")
         (("1"
           (expand "walk_from?")
           (prop)
           (("1" (expand "rev") (expand* "^" min empty_seq))
            ("2" (expand "rev") (expand* "^" min empty_seq))
            ("3"
             (reveal -1)
             (lemma "walk?_caret")
             (lemma "walk?_rev")
             (inst -1 "G!1" "w!1")
             (inst -2 "G!1" "0" "length(w!1)-1-i!1" "rev(w!1)")
             (("1"
               (typepred "i!1")
               (assert)
               (lemma "walk?_subgraph")
               (inst -1 "G!1" "del_verts(G!1, remove(x!1, W!1))" "w!1")
               (prop)
               (("1"
                 (lemma "walk?_caret")
                 (inst -1 "G!1" "0" "length(w!1)-1-i!1" "rev(w!1)")
                 (assert)
                 (expand "rev")
                 (assert))
                ("2" (expand "rev") (assert))
                ("3" (expand "rev") (assert))
                ("4" (hide -2 1 2 4) (grind))))
              ("2" (expand "rev") (assert))))))
          ("2"
           (expand "rev")
           (expand* "^" min empty_seq)
           (typepred "i!1")
           (assert))))
        ("2"
         (assert)
         (hide 3)
         (install-rewrites "walks")
         (expand "walk?")
         (expand "finseq_appl")
         (prop)
         (("1"
           (expand "verts_in?")
           (skosimp*)
           (expand "del_verts")
           (typepred "i!1")
           (hide -5)
           (inst -4 "i!1")
           (expand "verts_of")
           (expand "finseq_appl")
           (expand "difference")
           (expand "member")
           (prop)
           (inst 1 "i!1")
           (expand "remove")
           (expand "member")
           (prop)
           (assert))
          ("2"
           (skosimp*)
           (inst -5 "n!1")
           (prop)
           (expand "verts_of")
           (expand "finseq_appl")
           (expand "edge?")
           (prop)
           (hide -5)
           (expand "del_verts")
           (prop)
           (skosimp*)
           (copy -4)
           (inst -1 "seq(w!1)(n!1)")
           (inst -5 "seq(w!1)(n!1 + 1)")
           (("1"
             (prop)
             (("1" (assert)) ("2" (assert)) ("3" (assert))
              ("4"
               (assert)
               (prop)
               (("1" (assert)) ("2" (assert)) ("3" (assert))
                ("4" (assert) (inst 3 "1+n!1") (assert))
                ("5" (inst 3 "n!1") (assert))
                ("6" (inst 3 "n!1") (assert))
                ("7" (replace -1 -2 lr) (propax))
                ("8" (replace -1 -2 lr) (propax))))))
            ("2" (grind))))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "finite_set_induction_gen")
   (skosimp*)
   (inst -1
    "lambda W: (separates(G!1,W,s!1,t!1) implies (exists V1 : subset?(V1,W) and separates(G!1,V1,s!1,t!1) and tight?(G!1,s!1,t!1,V1)))")
   (prop)
   (("1" (inst -1 "W!1") (prop))
    ("2"
     (skosimp*)
     (lemma "smaller_tight")
     (inst -1 "G!1" "S!1" "s!1" "t!1")
     (hide -4 2)
     (prop)
     (("1"
       (inst 1 "S!1")
       (hide -2)
       (prop)
       (install-rewrites "finite_sets[T]")
       (assert)
       (hide-all-but 1)
       (grind))
      ("2"
       (skosimp*)
       (case "card(V!1)<card(S!1)")
       (("1"
         (inst -4 "V!1")
         (prop)
         (skosimp*)
         (inst 2 "V1!1")
         (prop)
         (hide-all-but (-1 -5 1))
         (install-rewrites "finite_sets[T]")
         (assert)
         (skosimp*)
         (inst?)
         (inst?)
         (prop))
        ("2"
         (hide-all-but (-1 1 2))
         (lemma "same_card_subset")
         (inst -1 "V!1" "S!1")
         (prop)
         (lemma "card_subset")
         (inst -1 "V!1" "S!1")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "good?")
   (expand "separable?")
   (prop)
   (lemma "small_tight")
   (inst?)
   (inst -1 "{t: T | vert(G!1)(t)  AND t /= s!1 AND t /= t!1}" "s!1"
    "t!1")
   (("1"
     (prop)
     (("1" (skosimp*) (inst 3 "V!1") (prop))
      ("2"
       (hide 4)
       (expand "separates")
       (skosimp*)
       (expand "walk_from?")
       (flatten)
       (case "length(w!1) = 1")
       (("1" (replace -1) (hide -1) (assert))
        ("2"
         (case-replace "length(w!1) = 2")
         (("1"
           (assert)
           (expand "walk?")
           (expand "finseq_appl")
           (flatten)
           (inst -5 "0")
           (assert)
           (hide -4)
           (replace -2 * lr)
           (replace -3 * lr)
           (hide 1)
           (expand "edge?")
           (expand "del_verts")
           (prop))
          ("2"
           (case "FORALL (i: below(length(w!1))): seq(w!1)(i) = s!1 OR seq(w!1)(i) = t!1")
           (("1"
             (expand "walk?")
             (expand "finseq_appl")
             (flatten)
             (inst -5 "0")
             (assert)
             (expand "edge?")
             (expand "del_verts")
             (flatten)
             (inst -1 "1")
             (assert))
            ("2"
             (lemma "walk_verts_in")
             (inst?)
             (("1"
               (split -1)
               (("1"
                 (hide -4)
                 (expand "verts_in?")
                 (expand "del_verts")
                 (expand "difference")
                 (expand "member")
                 (skosimp*)
                 (inst?)
                 (flatten)
                 (assert))
                ("2" (propax))))
              ("2"
               (hide -1 -2 -3 2 3 4 5 6)
               (lemma "finite_subset[T]")
               (inst?)
               (inst -1 "vert(G!1)")
               (assert)
               (hide 2)
               (grind))))))))))))
    ("2"
     (hide 3 4)
     (lemma "finite_subset[T]")
     (inst?)
     (inst -1 "vert(G!1)")
     (assert)
     (hide 2)
     (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (install-rewrites "k_menger")
   (expand "tight?")
   (expand "subset?")
   (skosimp*)
   (expand "member")
   (expand "intersection")
   (expand "member")
   (prop)
   (("1"
     (expand "close?")
     (inst -1 "x!1")
     (prop)
     (skosimp*)
     (expand "intersection")
     (expand "member")
     (decompose-equality -2)
     (inst -1 "x!1")
     (iff)
     (expand "singleton")
     (prop)
     (expand "internal_verts")
     (expand "finseq_appl")
     (skosimp*)
     (expand "path_verts")
     (inst 1 "p!1^(0,i!1)")
     (("1"
       (expand* "^" min empty_seq)
       (expand "walk_from?")
       (prop)
       (("1" (install-rewrites "paths") (assert))
        ("2"
         (expand "path_from?")
         (prop)
         (expand "path?")
         (expand "finseq_appl")
         (prop)
         (lemma "walk?_caret")
         (inst -1 "G!1" "0" "i!1" "p!1")
         (prop)
         (("1" (install-rewrites "walks") (assert)) ("2" (assert))
          ("3" (assert))))
        ("3"
         (lift-if)
         (assert)
         (prop)
         (("1" (skosimp) (inst?))
          ("2" (skosimp) (inst -7 "n!1") (assert))))))
      ("2" (install-rewrites "walks") (assert) (expand "min") (assert))))
    ("2"
     (expand "close?")
     (inst -1 "x!1")
     (prop)
     (skosimp*)
     (expand "intersection")
     (expand "member")
     (decompose-equality -2)
     (inst -1 "x!1")
     (iff)
     (expand "singleton")
     (prop)
     (expand "internal_verts")
     (expand "finseq_appl")
     (skosimp*)
     (expand "path_verts")
     (inst 1 "rev(p!1^(i!1,length(p!1)-1))")
     (("1"
       (expand* "^" min empty_seq)
       (expand "rev")
       (expand "walk_from?")
       (prop)
       (("1" (install-rewrites "walks") (assert) (prop))
        ("2" (install-rewrites "walks") (assert))
        ("3"
         (install-rewrites "paths")
         (expand "path_from?")
         (prop)
         (expand "path?")
         (expand "finseq_appl")
         (prop)
         (lemma "walk?_caret")
         (inst -1 "G!1" "i!1" "length(p!1)-1" "p!1")
         (prop)
         (("1"
           (lemma "walk?_rev")
           (inst -1 "G!1" " p!1 ^ (i!1, length(p!1) - 1)")
           (hide -7 -8 -9)
           (prop)
           (hide -2)
           (expand "^")
           (expand "rev")
           (assert))
          ("2" (assert)) ("3" (assert))))))
      ("2" (install-rewrites "walks") (assert) (assert))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "close?")
   (expand "subset?")
   (expand "member")
   (skosimp*)
   (expand "intersection")
   (expand "member")
   (inst 2 "remove(w!1,W!1)")
   (prop)
   (("1" (skosimp*) (expand "remove") (prop) (expand "member") (propax))
    ("2"
     (expand "remove")
     (expand "member")
     (hide -2 1)
     (decompose-equality -1)
     (inst -1 "w!1")
     (iff)
     (prop))
    ("3"
     (expand "separates")
     (prop)
     (("1" (expand "remove") (expand "member") (prop))
      ("2" (expand "remove") (expand "member") (prop))
      ("3"
       (skosimp*)
       (hide -2 3)
       (lemma "walk_to_path_from")
       (inst -1 "del_verts(G!1, remove(w!1, W!1))" "s!1" "t!1" "w!2")
       (prop)
       (skosimp*)
       (hide -2)
       (inst 3 "p!1")
       (lemma "path?_subgraph")
       (inst -1 "G!1" "del_verts(G!1, remove(w!1, W!1))" "p!1")
       (prop)
       (("1" (expand "path_from?") (prop))
        ("2"
         (expand "path_from?")
         (prop)
         (hide -1 -3)
         (expand "path?")
         (expand "finseq_appl")
         (prop)
         (expand "internal_verts")
         (install-rewrites "walks")
         (expand "finseq_appl")
         (apply-extensionality 1 :hide? t)
         (("1"
           (iff)
           (prop)
           (("1"
             (skosimp*)
             (inst -5 "i!1")
             (prop)
             (("1" (inst -7 "i!1") (assert))
              ("2" (inst -6 "i!1") (assert))))
            ("2" (assert))
            ("3"
             (reveal 2)
             (inst 1 "p!1")
             (expand "walk_from?")
             (prop)
             (("1" (reveal -3) (expand "from?") (prop))
              ("2" (reveal -3) (expand "from?") (prop))
              ("3"
               (expand "walk?")
               (expand "finseq_appl")
               (prop)
               (("1"
                 (expand "verts_in?")
                 (skosimp*)
                 (inst -2 "i!1")
                 (inst -3 "i!1")
                 (prop)
                 (("1"
                   (typepred "i!1")
                   (inst -3 "x!1")
                   (assert)
                   (prop)
                   (reveal -6)
                   (expand "from?")
                   (prop)
                   (inst 3 "i!1")
                   (replace -6 * rl)
                   (assert))
                  ("2"
                   (typepred "i!1")
                   (reveal -5)
                   (expand "from?")
                   (prop)
                   (case "i!1=length(p!1)-1")
                   (("1" (replace -1 * lr) (replace -3 * lr) (assert))
                    ("2" (assert))))
                  ("3" (hide -1 -2 -5 1 4) (grind))
                  ("4" (hide -3 4) (grind))))
                ("2"
                 (skosimp*)
                 (inst -4 "n!1")
                 (prop)
                 (expand "edge?")
                 (prop)
                 (expand "del_verts")
                 (prop)
                 (skosimp*)
                 (inst -4 "v!1")
                 (prop)
                 (("1" (hide -3 -6 -7 4) (assert))
                  ("2"
                   (copy 2)
                   (inst 1 "n!1")
                   (inst 3 "n!1+1")
                   (assert)
                   (replace -1 * rl)
                   (replace -6 * lr)
                   (hide -4 -7 -8)
                   (grind)
                   (("1"
                     (case "n!1+1=length(p!1)-1")
                     (("1" (reveal -8) (expand "from?") (propax))
                      ("2" (assert))))
                    ("2" (reveal -8) (expand "from?") (propax))
                    ("3" (reveal -8) (expand "from?") (propax))
                    ("4" (reveal -8) (expand "from?") (propax))))))))))))
          ("2" (skosimp*) (assert))))
        ("3"
         (assert)
         (expand "path_from?")
         (lemma "path?_subgraph")
         (inst -1 "G!1" "del_verts(G!1, remove(w!1, W!1))" "p!1")
         (prop)
         (hide 3)
         (hide -1 -2 1)
         (install-rewrites "graphs")
         (assert)
         (prop)
         (("1" (skosimp*)) ("2" (skosimp*))))
        ("4"
         (hide -1 1)
         (install-rewrites "graphs")
         (assert)
         (prop)
         (("1" (skosimp*)) ("2" (skosimp*))))
        ("5" (expand "path_from?") (prop))
        ("6" (expand "path_from?") (prop))))))
    ("4"
     (hide 2)
     (lemma "sub_tight")
     (inst -1 "G!1" "remove(w!1,W!1)" "W!1" "s!1" "t!1")
     (prop)
     (hide -1 -2 2)
     (install-rewrites "finite_sets")
     (assert)
     (skosimp*))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: variabl
script:
  (""
   (lemma "finite_set_induction_gen")
   (skosimp*)
   (inst -1
    "lambda W: (separates(G!1,W,s!1,t!1) implies (exists V1 : subset?(V1,W) and separates(G!1,V1,s!1,t!1) and close?(G!1,s!1,t!1,V1)))")
   (prop)
   (("1" (inst -1 "W!1") (prop))
    ("2"
     (skosimp*)
     (hide -3 2)
     (lemma "smaller_close")
     (lemma "small_tight")
     (inst -1 "G!1" "S!1" "s!1" "t!1")
     (prop)
     (skosimp*)
     (inst -4 "G!1" "V!1" "s!1" "t!1")
     (prop)
     (("1" (inst 1 "V!1") (prop))
      ("2"
       (skosimp*)
       (inst -7 "V!2")
       (prop)
       (("1"
         (skosimp*)
         (inst 2 "V1!1")
         (prop)
         (hide-all-but (-1 -4 -7 1 2))
         (install-rewrites "finite_sets[T]")
         (assert)
         (skosimp*)
         (inst?)
         (inst?)
         (inst?)
         (prop))
        ("2"
         (hide (-2 -3 -5 -6 -7 3))
         (lemma "same_card_subset")
         (lemma "card_subset")
         (copy -1)
         (copy -3)
         (inst -1 "V!2" "V!1")
         (inst -4 "V!1" "S!1")
         (inst -2 "V!2" "V!1")
         (inst -3 "V!1" "S!1")
         (prop)
         (("1" (replace -1 * lr) (assert)) ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: copied from exists tight
script:
  (""
   (skosimp*)
   (expand "good?")
   (expand "separable?")
   (prop)
   (lemma "small_close")
   (inst?)
   (inst -1 "{t: T | vert(G!1)(t)  AND t /= s!1 AND t /= t!1}" "s!1"
    "t!1")
   (("1"
     (prop)
     (("1" (skosimp*) (inst 3 "V!1") (prop))
      ("2"
       (hide 4)
       (expand "separates")
       (skosimp*)
       (expand "walk_from?")
       (flatten)
       (case "length(w!1) = 1")
       (("1" (replace -1) (hide -1) (assert))
        ("2"
         (case-replace "length(w!1) = 2")
         (("1"
           (assert)
           (expand "walk?")
           (expand "finseq_appl")
           (flatten)
           (inst -5 "0")
           (assert)
           (hide -4)
           (replace -2 * lr)
           (replace -3 * lr)
           (hide 1)
           (expand "edge?")
           (expand "del_verts")
           (prop))
          ("2"
           (case "FORALL (i: below(length(w!1))): seq(w!1)(i) = s!1 OR seq(w!1)(i) = t!1")
           (("1"
             (expand "walk?")
             (expand "finseq_appl")
             (flatten)
             (inst -5 "0")
             (assert)
             (expand "edge?")
             (expand "del_verts")
             (flatten)
             (inst -1 "1")
             (assert))
            ("2"
             (lemma "walk_verts_in")
             (inst?)
             (("1"
               (split -1)
               (("1"
                 (hide -4)
                 (expand "verts_in?")
                 (expand "del_verts")
                 (expand "difference")
                 (expand "member")
                 (skosimp*)
                 (inst?)
                 (flatten)
                 (assert))
                ("2" (propax))))
              ("2"
               (hide -1 -2 -3 2 3 4 5 6)
               (lemma "finite_subset[T]")
               (inst?)
               (inst -1 "vert(G!1)")
               (assert)
               (hide 2)
               (grind))))))))))))
    ("2"
     (hide 3 4)
     (lemma "finite_subset[T]")
     (inst?)
     (inst -1 "vert(G!1)")
     (assert)
     (hide 2)
     (grind))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "close?")
   (expand "separates")
   (prop)
   (expand "subset?")
   (expand "member")
   (apply-extensionality 7 :hide? t)
   (inst -2 "x!1")
   (iff)
   (prop)
   (("1"
     (hide -1)
     (inst -2 "x!1")
     (prop)
     (skosimp*)
     (hide 4)
     (inst 6 "p!1")
     (expand "path_from?")
     (expand "walk_from?")
     (prop)
     (("1" (expand "from?") (prop)) ("2" (expand "from?") (prop))
      ("3"
       (hide -2)
       (expand "walk?")
       (expand "finseq_appl")
       (prop)
       (("1"
         (expand "verts_in?")
         (expand "del_verts")
         (expand "difference")
         (expand "member")
         (skosimp*)
         (expand "internal_verts")
         (expand "path?")
         (expand "finseq_appl")
         (prop)
         (("1"
           (expand "walk?")
           (expand "finseq_appl")
           (expand "verts_in?")
           (prop)
           (inst -1 "i!1"))
          ("2"
           (hide -2)
           (decompose-equality -3)
           (copy -1)
           (inst -1 "x!1")
           (inst -2 "seq(p!1)(i!1)")
           (expand "singleton")
           (iff)
           (expand "intersection")
           (expand "member")
           (prop)
           (("1" (replace -3 -6 lr) (propax))
            ("2" (skosimp*) (reveal -6) (inst -1 "seq(p!1)(i!1)") (prop))
            ("3"
             (inst?)
             (typepred "i!1")
             (reveal -3)
             (expand "from?")
             (case "i!1=0")
             (("1"
               (replace -1 * lr)
               (prop)
               (("1" (replace -2 -7 lr) (propax))
                ("2"
                 (case "length(p!1)=1")
                 (("1" (replace -1 * lr) (assert)) ("2" (assert))))))
              ("2"
               (case "i!1=length(p!1)-1")
               (("1"
                 (replace -1 * lr)
                 (prop)
                 (("1" (assert))
                  ("2" (hide 1) (hide -4) (replace -3 -6 lr) (propax))))
                ("2" (assert))))))))))
        ("2"
         (skosimp*)
         (expand "edge?")
         (prop)
         (("1"
           (expand "path?")
           (expand "finseq_appl")
           (prop)
           (inst -4 "n!1" "n!1+1")
           (("1" (assert)) ("2" (assert))))
          ("2"
           (expand "path?")
           (expand "finseq_appl")
           (prop)
           (expand "walk?")
           (expand "finseq_appl")
           (prop)
           (inst -3 "n!1")
           (assert)
           (expand "edge?")
           (prop)
           (expand "del_verts")
           (prop)
           (reveal -5)
           (skosimp*)
           (inst -1 "v!1")
           (prop)
           (expand "internal_verts")
           (expand "finseq_appl")
           (expand "dbl")
           (prop)
           (("1"
             (decompose-equality -8)
             (inst -1 "v!1")
             (expand "intersection")
             (expand "member")
             (expand "singleton")
             (iff)
             (prop)
             (("1" (replace -3 -6 lr) (propax))
              ("2"
               (inst 2 "n!1")
               (assert)
               (typepred "n!1")
               (case "n!1=0")
               (("1"
                 (replace -1 * lr)
                 (hide -2 -6 -7 2 3)
                 (reveal -6)
                 (expand "from?")
                 (propax))
                ("2" (assert))))))
            ("2"
             (decompose-equality -8)
             (inst -1 "v!1")
             (expand "singleton")
             (expand "intersection")
             (expand "member")
             (iff)
             (prop)
             (("1" (replace -3 -6 lr) (propax))
              ("2"
               (inst 2 "n!1+1")
               (prop)
               (("1" (assert))
                ("2"
                 (case "n!1+1=length(p!1)-1")
                 (("1"
                   (replace -1 -2 lr)
                   (reveal -3)
                   (expand "from?")
                   (prop)
                   (replace -2 -4 lr)
                   (replace -4 -6 lr)
                   (propax))
                  ("2" (assert))))
                ("3" (assert))))))))))))))
    ("2"
     (hide 1)
     (inst -2 "x!1")
     (prop)
     (skosimp*)
     (hide 4)
     (inst 6 "p!1")
     (expand "path_from?")
     (expand "walk_from?")
     (prop)
     (("1" (expand "from?") (prop)) ("2" (expand "from?") (prop))
      ("3"
       (hide -2)
       (expand "walk?")
       (expand "finseq_appl")
       (prop)
       (("1"
         (expand "verts_in?")
         (expand "del_verts")
         (expand "difference")
         (expand "member")
         (skosimp*)
         (expand "internal_verts")
         (expand "path?")
         (expand "finseq_appl")
         (prop)
         (("1"
           (expand "walk?")
           (expand "verts_in?")
           (expand "finseq_appl")
           (prop)
           (inst -1 "i!1"))
          ("2"
           (hide -2)
           (decompose-equality -3)
           (copy -1)
           (inst -1 "x!1")
           (inst -2 "seq(p!1)(i!1)")
           (expand "singleton")
           (iff)
           (expand "intersection")
           (expand "member")
           (prop)
           (("1" (replace -3 -6 lr) (propax))
            ("2" (skosimp*) (reveal -5) (inst -1 "seq(p!1)(i!1)") (prop))
            ("3"
             (inst?)
             (typepred "i!1")
             (reveal -3)
             (expand "from?")
             (case "i!1=0")
             (("1"
               (replace -1 * lr)
               (prop)
               (("1" (replace -2 -7 lr) (propax))
                ("2"
                 (case "length(p!1)=1")
                 (("1" (replace -1 * lr) (assert)) ("2" (assert))))))
              ("2"
               (case "i!1=length(p!1)-1")
               (("1"
                 (replace -1 * lr)
                 (prop)
                 (("1" (assert))
                  ("2" (hide 1) (hide -4) (replace -3 -6 lr) (propax))))
                ("2" (assert))))))))))
        ("2"
         (skosimp*)
         (expand "edge?")
         (prop)
         (("1"
           (expand "path?")
           (expand "finseq_appl")
           (prop)
           (inst -4 "n!1" "n!1+1")
           (("1" (assert)) ("2" (assert))))
          ("2"
           (expand "path?")
           (prop)
           (expand "walk?")
           (expand "finseq_appl")
           (prop)
           (inst -3 "n!1")
           (assert)
           (expand "edge?")
           (prop)
           (expand "del_verts")
           (prop)
           (reveal -4)
           (skosimp*)
           (inst -1 "v!1")
           (prop)
           (expand "internal_verts")
           (expand "dbl")
           (prop)
           (("1"
             (decompose-equality -8)
             (inst -1 "v!1")
             (expand "intersection")
             (expand "member")
             (expand "singleton")
             (iff)
             (prop)
             (("1" (replace -3 -6 lr) (propax))
              ("2"
               (inst 2 "n!1")
               (assert)
               (typepred "n!1")
               (case "n!1=0")
               (("1"
                 (replace -1 * lr)
                 (hide -2 -6 -7 2 3)
                 (reveal -6)
                 (expand "from?")
                 (assert))
                ("2" (expand "finseq_appl") (assert))))))
            ("2"
             (decompose-equality -8)
             (inst -1 "v!1")
             (expand "singleton")
             (expand "intersection")
             (expand "member")
             (iff)
             (prop)
             (("1" (replace -3 -6 lr) (propax))
              ("2"
               (inst 2 "n!1+1")
               (prop)
               (("1" (assert))
                ("2"
                 (case "n!1+1=length(p!1)-1")
                 (("1"
                   (replace -1 -2 lr)
                   (reveal -3)
                   (expand "from?")
                   (prop)
                   (replace -2 -4 lr)
                   (replace -4 -6 lr)
                   (propax))
                  ("2" (assert))))
                ("3" (expand "finseq_appl") (assert))))))))))))))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "subset?")
   (expand "member")
   (expand "close?")
   (skosimp*)
   (inst -1 "x!1")
   (prop)
   (skosimp*)
   (expand "intersection")
   (expand "path_from?")
   (prop)
   (expand "path?")
   (prop)
   (expand "walk?")
   (expand "finseq_appl")
   (prop)
   (hide -2 -3)
   (expand "member")
   (decompose-equality -3)
   (inst -1 "x!1")
   (expand "singleton")
   (prop)
   (expand "internal_verts")
   (expand "finseq_appl")
   (skosimp*)
   (expand "verts_in?")
   (inst -5 "i!1")
   (replace -4 -5 lr)
   (propax))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "empty?")
   (expand "member")
   (skosimp*)
   (expand "intersection")
   (expand "member")
   (prop)
   (expand "Hverts")
   (expand "path_verts")
   (skosimp*)
   (expand "separates")
   (prop)
   (lemma "walk_merge")
   (inst -1 "del_verts(G!1,W!1)" "w!2" "w!1" "s!1" "t!1" "x!1")
   (prop))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "subset?")
   (expand "member")
   (skosimp*)
   (expand "Mgraph")
   (expand "add")
   (expand "member")
   (prop)
   (("1" (expand "good?") (prop) (replace -1 -3 lr) (propax))
    ("2" (expand "Kgraph") (expand "subgraph") (prop))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "subset?")
   (expand "member")
   (skosimp*)
   (expand "Mgraph")
   (expand "add")
   (expand "member")
   (prop)
   (("1" (expand "good?") (prop) (replace -1 -4 lr) (propax))
    ("2" (expand "Kgraph") (expand "subgraph") (prop))))


proof_type: f_proof
decl_type: formula
library: graphs
theory: k_menger
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: redo defns
script:
  (""
   (skosimp*)
   (lemma "finite_sets[T].card_subset")
   (lemma "finite_sets[T].same_card_subset")
   (inst -1 "vert(Mgraph(G!1,W!1,s!1))" "vert(G!1)")
   (inst -2 "vert(Mgraph(G!1,W!1,s!1))" "vert(G!1)")
   (expand "size")
   (hide -1)
   (prop)
   (("1"
     (case "vert(Mgraph(G!1, W!1, s!1)) = vert(G!1)")
     (("1"
       (expand "close?")
       (expand "attached?")
       (prop)
       (skosimp*)
       (inst -5 "w!1")
       (prop)
       (expand "intersection")
       (expand "member")
       (skosimp*)
       (hide -4 3)
       (expand "Mgraph")
       (expand "Kgraph")
       (expand "add")
       (expand "member")
       (expand "difference")
       (expand "member")
       (expand "Hverts")
       (expand "path_verts")
       (expand "subgraph")
       (decompose-equality -3)
       (inst -1 "p!1(1)")
       (("1"
         (iff)
         (expand "finseq_appl")
         (prop)
         (("1"
           (hide -4 -5 -6)
           (install-rewrites "paths")
           (assert)
           (prop)
           (("1" (inst -7 "0" "1") (assert))
            ("2"
             (inst -5 "0")
             (assert)
             (case "length(p!1)=1")
             (("1"
               (replace -1 * lr)
               (assert)
               (reveal -3)
               (expand "good?")
               (expand "separable?")
               (propax))
              ("2" (assert))))
            ("3"
             (inst -5 "0")
             (assert)
             (case "length(p!1)=1")
             (("1"
               (replace -1 * lr)
               (assert)
               (reveal -3)
               (expand "good?")
               (expand "separable?")
               (propax))
              ("2" (assert))))
            ("4"
             (inst -4 "0")
             (assert)
             (case "length(p!1)=1")
             (("1"
               (replace -1 * lr)
               (assert)
               (reveal -3)
               (expand "good?")
               (expand "separable?")
               (propax))
              ("2" (assert))))))
          ("2"
           (inst 1 "p!1^(0,1)")
           (("1"
             (expand "path_from?")
             (prop)
             (expand "from?")
             (prop)
             (hide -6 -9)
             (expand "path?")
             (expand "finseq_appl")
             (prop)
             (hide -5)
             (expand "^")
             (expand "walk?")
             (prop)
             (inst -5 "0")
             (typepred "p!1")
             (assert)
             (case "length(p!1)>1")
             (("1"
               (assert)
               (expand "walk_from?")
               (expand "finseq_appl")
               (expand "del_verts")
               (expand "walk?")
               (expand "finseq_appl")
               (expand "min")
               (prop)
               (("1"
                 (expand "verts_in?")
                 (expand "difference")
                 (expand "member")
                 (skosimp*)
                 (typepred "i!1")
                 (case "i!1=0")
                 (("1"
                   (replace -1 * lr)
                   (inst -8 "0")
                   (prop)
                   (reveal -5)
                   (expand "separates")
                   (assert))
                  ("2"
                   (case "i!1=1")
                   (("1"
                     (replace -1 * lr)
                     (prop)
                     (replace -11 -10 lr)
                     (decompose-equality -12)
                     (inst -1 "seq(p!1)(1)")
                     (iff)
                     (expand "singleton")
                     (hide 2)
                     (assert)
                     (expand "internal_verts")
                     (inst 1 "1")
                     (assert)
                     (case "length(p!1)=2")
                     (("1"
                       (replace -1 * lr)
                       (hide -4 -5 -6 1)
                       (expand "good?")
                       (prop)
                       (expand "separable?")
                       (prop)
                       (reveal -7)
                       (reveal -5)
                       (expand "finseq_appl")
                       (inst -1 "0")
                       (replace -3 -2 lr)
                       (assert))
                      ("2" (assert) (expand "finseq_appl") (propax))))
                    ("2" (assert))))))
                ("2"
                 (skosimp*)
                 (case "n!1=0")
                 (("1"
                   (replace -1 * lr)
                   (assert)
                   (expand "edge?" 1)
                   (prop)
                   (("1" (expand "edge?" -10) (assert))
                    ("2" (expand "edge?") (assert))
                    ("3"
                     (skosimp*)
                     (expand "dbl")
                     (split -2)
                     (("1"
                       (hide -4 -7 -8)
                       (reveal -6)
                       (expand "separates")
                       (prop)
                       (replace -1 -2 lr)
                       (replace -9 * lr)
                       (propax))
                      ("2"
                       (hide -4 -7 -8)
                       (expand "good?")
                       (expand "separable?")
                       (prop)
                       (decompose-equality -10)
                       (inst -1 "v!1")
                       (iff)
                       (prop)
                       (("1"
                         (expand "singleton")
                         (replace -12 * lr)
                         (replace -4 -11 rl)
                         (replace -3 * lr)
                         (propax))
                        ("2"
                         (expand "singleton")
                         (expand "internal_verts")
                         (inst 2 "1")
                         (prop)
                         (("1" (assert))
                          ("2"
                           (case "length(p!1)=2")
                           (("1"
                             (replace -1 * lr)
                             (hide -5 -6 1)
                             (reveal -8)
                             (replace -2 * lr)
                             (assert))
                            ("2" (assert))))
                          ("3" (expand "finseq_appl") (assert))))))))))
                  ("2" (assert))))))
              ("2"
               (expand "finseq_appl")
               (case "length(p!1)=1")
               (("1"
                 (replace -1 * lr)
                 (assert)
                 (prop)
                 (("1"
                   (reveal -3)
                   (hide -5 -6 -10 1 2)
                   (replace -3 * lr)
                   (assert)
                   (expand "good?")
                   (expand "separable?")
                   (propax))
                  ("2"
                   (reveal -3)
                   (replace -2 * lr)
                   (assert)
                   (expand "good?")
                   (expand "separable?")
                   (propax))))
                ("2" (assert))))))
            ("2" (expand* "^" "min") (lift-if) (assert))))
          ("3"
           (hide -2 -3 -4 4 5)
           (install-rewrites "paths")
           (assert)
           (prop)
           (inst -1 "1"))
          ("4"
           (hide-all-but (-1 1))
           (install-rewrites "paths")
           (assert)
           (prop)
           (inst -1 "1"))
          ("5"
           (hide-all-but (-2 1))
           (install-rewrites "paths")
           (assert)
           (prop)
           (inst -1 "1"))))
        ("2"
         (expand "good?")
         (expand "separable?")
         (prop)
         (hide -2 -5 3 4 5)
         (install-rewrites "paths")
         (assert)
         (prop)
         (typepred "p!1")
         (case "length(p!1)=1")
         (("1" (replace -1 * lr) (assert)) ("2" (assert))))))
      ("2"
       (reveal -3)
       (inst -1 "vert(Mgraph(G!1, W!1, s!1))" "vert(G!1)")
       (prop)
       (("1" (hide -1 -4 3 4) (grind)) ("2" (assert))))))
    ("2" (hide -2 -3 2 3) (grind))))


