# HG changeset patch # User wenzelm # Date 1633167519 -7200 # Node ID ed4149b3d7ab835ea8d1cdfefe27bb96fcd93457 # Parent baa7a208d9d55db29f6d30c89c2ca8d59220ca38 proper patterns for (- numeral t), amending 03ff4d1e6784; diff -r baa7a208d9d5 -r ed4149b3d7ab src/HOL/Decision_Procs/Cooper.thy --- a/src/HOL/Decision_Procs/Cooper.thy Sat Oct 02 11:20:12 2021 +0200 +++ b/src/HOL/Decision_Procs/Cooper.thy Sat Oct 02 11:38:39 2021 +0200 @@ -2388,7 +2388,7 @@ | num_of_term vs \<^term>\- 1::int\ = @{code C} (@{code int_of_integer} (~ 1)) | num_of_term vs \<^Const_>\numeral _ for t\ = @{code C} (@{code int_of_integer} (HOLogic.dest_numeral t)) - | num_of_term vs (\<^term>\- numeral :: _ \ int\ $ t) = (* FIXME !? *) + | num_of_term vs \<^Const_>\uminus \<^Type>\int\ for \<^Const_>\numeral \<^Type>\int\ for t\\ = @{code C} (@{code int_of_integer} (~(HOLogic.dest_numeral t))) | num_of_term vs (Bound i) = @{code Bound} (@{code nat_of_integer} i) | num_of_term vs \<^Const_>\uminus \<^Type>\int\ for t'\ = @{code Neg} (num_of_term vs t') diff -r baa7a208d9d5 -r ed4149b3d7ab src/HOL/Decision_Procs/MIR.thy --- a/src/HOL/Decision_Procs/MIR.thy Sat Oct 02 11:20:12 2021 +0200 +++ b/src/HOL/Decision_Procs/MIR.thy Sat Oct 02 11:38:39 2021 +0200 @@ -5592,7 +5592,7 @@ | _ => error "num_of_term: unsupported Multiplication") | num_of_term vs \<^Const_>\of_int \<^Type>\real\ for \<^Const_>\numeral \<^Type>\int\ for t'\\ = mk_C (HOLogic.dest_numeral t') - | num_of_term vs (\<^Const_>\of_int \<^Type>\real\\ $ (\<^term>\- numeral :: _ \ int\ $ t')) = (* FIXME !? *) + | num_of_term vs \<^Const_>\of_int \<^Type>\real\ for \<^Const_>\uminus \<^Type>\int\ for \<^Const_>\numeral \<^Type>\int\ for t'\\\ = mk_C (~ (HOLogic.dest_numeral t')) | num_of_term vs \<^Const_>\of_int \<^Type>\real\ for \<^Const_>\floor \<^Type>\real\ for t'\\ = @{code Floor} (num_of_term vs t') @@ -5600,7 +5600,7 @@ @{code Neg} (@{code Floor} (@{code Neg} (num_of_term vs t'))) | num_of_term vs \<^Const_>\numeral \<^Type>\real\ for t'\ = mk_C (HOLogic.dest_numeral t') - | num_of_term vs (\<^term>\- numeral :: _ \ real\ $ t') = (* FIXME !? *) + | num_of_term vs \<^Const_>\uminus \<^Type>\real\ for \<^Const_>\numeral \<^Type>\real\ for t'\\ = mk_C (~ (HOLogic.dest_numeral t')) | num_of_term vs t = error ("num_of_term: unknown term " ^ Syntax.string_of_term \<^context> t); @@ -5614,7 +5614,7 @@ @{code Eq} (@{code Sub} (num_of_term vs t1, num_of_term vs t2)) | fm_of_term vs \<^Const_>\rdvd for \<^Const_>\of_int \<^Type>\real\ for \<^Const_>\numeral \<^Type>\int\ for t1\\ t2\ = mk_Dvd (HOLogic.dest_numeral t1, num_of_term vs t2) - | fm_of_term vs \<^Const_>\rdvd for \<^Const_>\of_int \<^Type>\real\ for \(\<^term>\- numeral :: _ \ int\ $ t1)\\ t2\ = (* FIXME !? *) + | fm_of_term vs \<^Const_>\rdvd for \<^Const_>\of_int \<^Type>\real\ for \<^Const_>\uminus \<^Type>\int\ for \<^Const_>\numeral \<^Type>\int\ for t1\\\ t2\ = mk_Dvd (~ (HOLogic.dest_numeral t1), num_of_term vs t2) | fm_of_term vs \<^Const_>\HOL.eq \<^Type>\bool\ for t1 t2\ = @{code Iff} (fm_of_term vs t1, fm_of_term vs t2)