src/Pure/proofterm.ML
changeset 70908 3828a57e537d
parent 70898 c13d9d3ee128
child 70909 9e05f382e749
equal deleted inserted replaced
70907:7e3f25a0cee4 70908:3828a57e537d
   134   val symmetric_proof: proof -> proof
   134   val symmetric_proof: proof -> proof
   135   val transitive_proof: typ -> term -> proof -> proof -> proof
   135   val transitive_proof: typ -> term -> proof -> proof -> proof
   136   val equal_intr_proof: term -> term -> proof -> proof -> proof
   136   val equal_intr_proof: term -> term -> proof -> proof -> proof
   137   val equal_elim_proof: term -> term -> proof -> proof -> proof
   137   val equal_elim_proof: term -> term -> proof -> proof -> proof
   138   val abstract_rule_proof: string * term -> proof -> proof
   138   val abstract_rule_proof: string * term -> proof -> proof
   139   val combination_proof: typ -> term -> term -> term -> term -> proof -> proof -> proof
   139   val combination_proof: term -> term -> term -> term -> proof -> proof -> proof
   140   val strip_shyps_proof: Sorts.algebra -> (typ * sort) list -> (typ * sort) list ->
   140   val strip_shyps_proof: Sorts.algebra -> (typ * sort) list -> (typ * sort) list ->
   141     sort list -> proof -> proof
   141     sort list -> proof -> proof
   142   val of_sort_proof: Sorts.algebra ->
   142   val of_sort_proof: Sorts.algebra ->
   143     (class * class -> proof) ->
   143     (class * class -> proof) ->
   144     (string * class list list * class -> proof) ->
   144     (string * class list list * class -> proof) ->
  1311   | check_comb (PAxm ("Pure.transitive", _, _) % _ % _ % _ %% prf1 %% prf2) =
  1311   | check_comb (PAxm ("Pure.transitive", _, _) % _ % _ % _ %% prf1 %% prf2) =
  1312       check_comb prf1 andalso check_comb prf2
  1312       check_comb prf1 andalso check_comb prf2
  1313   | check_comb (PAxm ("Pure.symmetric", _, _) % _ % _ %% prf) = check_comb prf
  1313   | check_comb (PAxm ("Pure.symmetric", _, _) % _ % _ %% prf) = check_comb prf
  1314   | check_comb _ = false;
  1314   | check_comb _ = false;
  1315 
  1315 
  1316 fun combination_proof A f g t u prf1 prf2 =
  1316 fun combination_proof f g t u prf1 prf2 =
  1317   let
  1317   let
  1318     val f = Envir.beta_norm f;
  1318     val f = Envir.beta_norm f;
  1319     val g = Envir.beta_norm g;
  1319     val g = Envir.beta_norm g;
  1320     val prf =
  1320     val prf =
  1321       if check_comb prf1 then
  1321       if check_comb prf1 then