src/HOL/Big_Operators.thy
changeset 42284 326f57825e1a
parent 41550 efa734d9b221
child 42871 1c0b99f950d9
equal deleted inserted replaced
42283:25d9d836ed9c 42284:326f57825e1a
    84 let
    84 let
    85   fun setsum_tr' [Abs (x, Tx, t), Const (@{const_syntax Collect}, _) $ Abs (y, Ty, P)] =
    85   fun setsum_tr' [Abs (x, Tx, t), Const (@{const_syntax Collect}, _) $ Abs (y, Ty, P)] =
    86         if x <> y then raise Match
    86         if x <> y then raise Match
    87         else
    87         else
    88           let
    88           let
    89             val x' = Syntax.mark_bound x;
    89             val x' = Syntax_Trans.mark_bound x;
    90             val t' = subst_bound (x', t);
    90             val t' = subst_bound (x', t);
    91             val P' = subst_bound (x', P);
    91             val P' = subst_bound (x', P);
    92           in Syntax.const @{syntax_const "_qsetsum"} $ Syntax.mark_bound x $ P' $ t' end
    92           in Syntax.const @{syntax_const "_qsetsum"} $ Syntax_Trans.mark_bound x $ P' $ t' end
    93     | setsum_tr' _ = raise Match;
    93     | setsum_tr' _ = raise Match;
    94 in [(@{const_syntax setsum}, setsum_tr')] end
    94 in [(@{const_syntax setsum}, setsum_tr')] end
    95 *}
    95 *}
    96 
    96 
    97 lemma setsum_empty:
    97 lemma setsum_empty: