tuned -- fewer warnings;
authorwenzelm
Mon, 12 Sep 2016 20:24:42 +0200
changeset 63857 0883c1cc655c
parent 63856 0db1481c1ec1
child 63858 0f5e735e3640
tuned -- fewer warnings;
src/Pure/proofterm.ML
--- a/src/Pure/proofterm.ML	Mon Sep 12 19:22:37 2016 +0200
+++ b/src/Pure/proofterm.ML	Mon Sep 12 20:24:42 2016 +0200
@@ -15,8 +15,8 @@
    | PBound of int
    | Abst of string * typ option * proof
    | AbsP of string * term option * proof
-   | op % of proof * term option
-   | op %% of proof * proof
+   | % of proof * term option
+   | %% of proof * proof
    | Hyp of term
    | PAxm of string * term * typ list option
    | OfClass of typ * class
@@ -378,7 +378,7 @@
     (PThm (_, (_, body')), _) => Future.join body'
   | _ => body);
 
-val mk_Abst = fold_rev (fn (s, T:typ) => fn prf => Abst (s, NONE, prf));
+val mk_Abst = fold_rev (fn (s, _: typ) => fn prf => Abst (s, NONE, prf));
 fun mk_AbsP (i, prf) = funpow i (fn prf => AbsP ("H", NONE, prf)) prf;
 
 fun map_proof_same term typ ofclass =
@@ -434,7 +434,7 @@
 fun maxidx_proof prf = fold_proof_terms Term.maxidx_term Term.maxidx_typ prf;
 
 fun size_of_proof (Abst (_, _, prf)) = 1 + size_of_proof prf
-  | size_of_proof (AbsP (_, t, prf)) = 1 + size_of_proof prf
+  | size_of_proof (AbsP (_, _, prf)) = 1 + size_of_proof prf
   | size_of_proof (prf % _) = 1 + size_of_proof prf
   | size_of_proof (prf1 %% prf2) = size_of_proof prf1 + size_of_proof prf2
   | size_of_proof _ = 1;
@@ -442,7 +442,7 @@
 fun change_type opTs (PAxm (name, prop, _)) = PAxm (name, prop, opTs)
   | change_type (SOME [T]) (OfClass (_, c)) = OfClass (T, c)
   | change_type opTs (Oracle (name, prop, _)) = Oracle (name, prop, opTs)
-  | change_type opTs (Promise _) = raise Fail "change_type: unexpected promise"
+  | change_type _ (Promise _) = raise Fail "change_type: unexpected promise"
   | change_type opTs (PThm (i, ((name, prop, _), body))) =
       PThm (i, ((name, prop, opTs), body))
   | change_type _ prf = prf;
@@ -490,7 +490,7 @@
 
 fun incr_bv' inct tlev t = incr_bv (inct, tlev, t);
 
-fun prf_incr_bv' incP inct Plev tlev (PBound i) =
+fun prf_incr_bv' incP _ Plev _ (PBound i) =
       if i >= Plev then PBound (i+incP) else raise Same.SAME
   | prf_incr_bv' incP inct Plev tlev (AbsP (a, t, body)) =
       (AbsP (a, Same.map_option (same (op =) (incr_bv' inct tlev)) t,
@@ -516,7 +516,7 @@
   | prf_loose_bvar1 (prf % SOME t) k = prf_loose_bvar1 prf k orelse loose_bvar1 (t, k)
   | prf_loose_bvar1 (_ % NONE) _ = true
   | prf_loose_bvar1 (AbsP (_, SOME t, prf)) k = loose_bvar1 (t, k) orelse prf_loose_bvar1 prf k
-  | prf_loose_bvar1 (AbsP (_, NONE, _)) k = true
+  | prf_loose_bvar1 (AbsP (_, NONE, _)) _ = true
   | prf_loose_bvar1 (Abst (_, _, prf)) k = prf_loose_bvar1 prf (k+1)
   | prf_loose_bvar1 _ _ = false;
 
@@ -527,7 +527,7 @@
   | prf_loose_Pbvar1 (Abst (_, _, prf)) k = prf_loose_Pbvar1 prf k
   | prf_loose_Pbvar1 _ _ = false;
 
-fun prf_add_loose_bnos plev tlev (PBound i) (is, js) =
+fun prf_add_loose_bnos plev _ (PBound i) (is, js) =
       if i < plev then (is, js) else (insert (op =) (i-plev) is, js)
   | prf_add_loose_bnos plev tlev (prf1 %% prf2) p =
       prf_add_loose_bnos plev tlev prf2
@@ -649,7 +649,7 @@
       | subst (prf %% prf') Plev tlev = (subst prf Plev tlev %% substh prf' Plev tlev
           handle Same.SAME => prf %% subst prf' Plev tlev)
       | subst (prf % t) Plev tlev = subst prf Plev tlev % t
-      | subst  prf _ _ = raise Same.SAME
+      | subst  _ _ _ = raise Same.SAME
     and substh prf Plev tlev = (subst prf Plev tlev handle Same.SAME => prf)
   in case args of [] => prf | _ => substh prf 0 0 end;
 
@@ -671,25 +671,25 @@
       freeze names names' t $ freeze names names' u
   | freeze names names' (Abs (s, T, t)) =
       Abs (s, frzT names' T, freeze names names' t)
-  | freeze names names' (Const (s, T)) = Const (s, frzT names' T)
-  | freeze names names' (Free (s, T)) = Free (s, frzT names' T)
+  | freeze _ names' (Const (s, T)) = Const (s, frzT names' T)
+  | freeze _ names' (Free (s, T)) = Free (s, frzT names' T)
   | freeze names names' (Var (ixn, T)) =
       Free (the (AList.lookup (op =) names ixn), frzT names' T)
-  | freeze names names' t = t;
+  | freeze _ _ t = t;
 
 fun thaw names names' (t $ u) =
       thaw names names' t $ thaw names names' u
   | thaw names names' (Abs (s, T, t)) =
       Abs (s, thawT names' T, thaw names names' t)
-  | thaw names names' (Const (s, T)) = Const (s, thawT names' T)
+  | thaw _ names' (Const (s, T)) = Const (s, thawT names' T)
   | thaw names names' (Free (s, T)) =
       let val T' = thawT names' T in
         (case AList.lookup (op =) names s of
           NONE => Free (s, T')
         | SOME ixn => Var (ixn, T'))
       end
-  | thaw names names' (Var (ixn, T)) = Var (ixn, thawT names' T)
-  | thaw names names' t = t;
+  | thaw _ names' (Var (ixn, T)) = Var (ixn, thawT names' T)
+  | thaw _ _ t = t;
 
 in
 
@@ -754,9 +754,9 @@
     val used = Name.context
       |> fold_types (fold_atyps (fn TVar ((a, _), _) => Name.declare a | _ => I)) t;
     val fmap = fs ~~ #1 (fold_map Name.variant (map fst fs) used);
-    fun thaw (f as (a, S)) =
-      (case AList.lookup (op =) fmap f of
-        NONE => TFree f
+    fun thaw (a, S) =
+      (case AList.lookup (op =) fmap (a, S) of
+        NONE => TFree (a, S)
       | SOME b => TVar ((b, 0), S));
   in map_proof_terms (map_types (map_type_tfree thaw)) (map_type_tfree thaw) prf end;
 
@@ -960,13 +960,12 @@
   | transitive _ _ prf1 (PAxm ("Pure.reflexive", _, _) % _) = prf1
   | transitive u (Type ("prop", [])) prf1 prf2 =
       transitive_axm % NONE % SOME (remove_types u) % NONE %% prf1 %% prf2
-  | transitive u T prf1 prf2 =
-      transitive_axm % NONE % NONE % NONE %% prf1 %% prf2;
+  | transitive _ _ prf1 prf2 = transitive_axm % NONE % NONE % NONE %% prf1 %% prf2;
 
 fun abstract_rule x a prf =
   abstract_rule_axm % NONE % NONE %% forall_intr_proof x a prf;
 
-fun check_comb (PAxm ("Pure.combination", _, _) % f % g % _ % _ %% prf %% _) =
+fun check_comb (PAxm ("Pure.combination", _, _) % f % _ % _ % _ %% prf %% _) =
       is_some f orelse check_comb prf
   | check_comb (PAxm ("Pure.transitive", _, _) % _ % _ % _ %% prf1 %% prf2) =
       check_comb prf1 andalso check_comb prf2
@@ -1122,7 +1121,7 @@
 fun is_proj t =
   let
     fun is_p i t = (case strip_comb t of
-        (Bound j, []) => false
+        (Bound _, []) => false
       | (Bound j, ts) => j >= i orelse exists (is_p i) ts
       | (Abs (_, _, u), _) => is_p (i+1) u
       | (_, ts) => exists (is_p i) ts)
@@ -1181,10 +1180,10 @@
              orelse has_duplicates (op =)
                (Library.foldl (fn (js, SOME (Bound j)) => j :: js | (js, _) => js) ([], ts))
              orelse exists #1 prfs then [i] else [], false, map (pair false) ts, prf)
-      | shrink' ls lev ts prfs (Hyp t) = ([], false, map (pair false) ts, Hyp t)
-      | shrink' ls lev ts prfs (prf as MinProof) = ([], false, map (pair false) ts, prf)
-      | shrink' ls lev ts prfs (prf as OfClass _) = ([], false, map (pair false) ts, prf)
-      | shrink' ls lev ts prfs prf =
+      | shrink' _ _ ts _ (Hyp t) = ([], false, map (pair false) ts, Hyp t)
+      | shrink' _ _ ts _ (prf as MinProof) = ([], false, map (pair false) ts, prf)
+      | shrink' _ _ ts _ (prf as OfClass _) = ([], false, map (pair false) ts, prf)
+      | shrink' _ _ ts prfs prf =
           let
             val prop =
               (case prf of