src/HOL/Big_Operators.thy
changeset 49660 de49d9b4d7bc
parent 48893 3db108d14239
child 49715 16d8c6d288bc
equal deleted inserted replaced
49659:251342b60a82 49660:de49d9b4d7bc
   199 let
   199 let
   200   fun setsum_tr' [Abs (x, Tx, t), Const (@{const_syntax Collect}, _) $ Abs (y, Ty, P)] =
   200   fun setsum_tr' [Abs (x, Tx, t), Const (@{const_syntax Collect}, _) $ Abs (y, Ty, P)] =
   201         if x <> y then raise Match
   201         if x <> y then raise Match
   202         else
   202         else
   203           let
   203           let
   204             val x' = Syntax_Trans.mark_bound x;
   204             val x' = Syntax_Trans.mark_bound_body (x, Tx);
   205             val t' = subst_bound (x', t);
   205             val t' = subst_bound (x', t);
   206             val P' = subst_bound (x', P);
   206             val P' = subst_bound (x', P);
   207           in Syntax.const @{syntax_const "_qsetsum"} $ Syntax_Trans.mark_bound x $ P' $ t' end
   207           in
       
   208             Syntax.const @{syntax_const "_qsetsum"} $ Syntax_Trans.mark_bound_abs (x, Tx) $ P' $ t'
       
   209           end
   208     | setsum_tr' _ = raise Match;
   210     | setsum_tr' _ = raise Match;
   209 in [(@{const_syntax setsum}, setsum_tr')] end
   211 in [(@{const_syntax setsum}, setsum_tr')] end
   210 *}
   212 *}
   211 
   213 
   212 lemma setsum_empty:
   214 lemma setsum_empty: