isahipster: da2e1698a0d44c6b9c9cb8c257e99f0818227032

     1: theory prop_28
     2: imports Main
     3:         "$HIPSTER_HOME/IsaHipster"
     4: begin
     5:   datatype 'a list = Nil2 | Cons2 "'a" "'a list"
     6:   fun append :: "'a list => 'a list => 'a list" where
     7:   "append (Nil2) y = y"
     8:   | "append (Cons2 z xs) y = Cons2 z (append xs y)"
     9:   fun rev :: "'a list => 'a list" where
    10:   "rev (Nil2) = Nil2"
    11:   | "rev (Cons2 y xs) = append (rev xs) (Cons2 y (Nil2))"
    12:   fun qrevflat :: "('a list) list => 'a list => 'a list" where
    13:   "qrevflat (Nil2) y = y"
    14:   | "qrevflat (Cons2 xs xss) y = qrevflat xss (append (rev xs) y)"
    15:   fun revflat :: "('a list) list => 'a list" where
    16:   "revflat (Nil2) = Nil2"
    17:   | "revflat (Cons2 xs xss) = append (revflat xss) (rev xs)"
    18:   (*hipster append rev qrevflat revflat *)
    19: 
    20: lemma lemma_a [thy_expl]: "append x2 Nil2 = x2"
    21: by (hipster_induct_schemes  append.simps)
    22: 
    23: lemma lemma_aa [thy_expl]: "append (append x2 y2) z2 = append x2 (append y2 z2)"
    24: by (hipster_induct_schemes append.simps)
    25: 
    26: lemma lemma_ab [thy_expl]: "append (rev x4) (rev y4) = rev (append y4 x4)"
    27: by (hipster_induct_schemes rev.simps append.simps)
    28: 
    29: lemma lemma_ac [thy_expl]: "rev (rev x3) = x3"
    30: by (hipster_induct_schemes rev.simps append.simps)
    31: 
    32: hipster qrevflat revflat append rev
    33: lemma lemma_ad [thy_expl]: "append (qrevflat x3 y3) z3 = qrevflat x3 (append y3 z3)"
    34: by (hipster_induct_schemes qrevflat.simps revflat.simps append.simps)
    35: 
    36: lemma lemma_ae [thy_expl]: "qrevflat x3 Nil2 = revflat x3"
    37: by (hipster_induct_schemes qrevflat.simps revflat.simps append.simps rev.simps)
    38: 
    39:   theorem x0 :
    40:     "(revflat x) = (qrevflat x (Nil2))"
    41:     by (hipster_induct_schemes qrevflat.simps revflat.simps append.simps)
    42: 
    43:     by (tactic {* Subgoal.FOCUS_PARAMS (K (Tactic_Data.hard_tac @{context})) @{context} 1 *})
    44: end

Generated by git2html.