diff --git a/share/libc/math.h b/share/libc/math.h
index ad38d9f68cd5cd254ea592173b18e38b6cffed3f..c2d52a34583abaf8f755901ca0563625092cb106 100644
--- a/share/libc/math.h
+++ b/share/libc/math.h
@@ -467,7 +467,7 @@ extern float sinf(float x);
 */
 extern long double sinl(long double x);
 
-/* Note: the specs of tan/tanf/tanl below assume that, for a finite x,
+/* Note: the specs of tan/tanf below assume that, for a finite x,
  *       the result is always finite. This is _not_ guaranteed by the standard,
  *       but testing with the GNU libc, plus some mathematical arguments
  *       (see https://stackoverflow.com/questions/67482420) indicate that,
@@ -527,26 +527,7 @@ extern float tanf(float x);
 
 /*@
   assigns errno, \result \from x;
-  behavior zero:
-    assumes zero_arg: \is_finite(x) && x == 0.;
-    assigns \result \from x;
-    ensures zero_res: \is_finite(\result) && \result == x;
-    ensures no_error: errno == \old(errno);
-  behavior finite_non_zero:
-    assumes finite_arg: \is_finite(x) && x != 0.;
-    ensures finite_result: \is_finite(\result);
-    ensures maybe_error: errno == \old(errno) || errno == ERANGE;
-  behavior infinity:
-    assumes infinite_arg: \is_infinite(x);
-    ensures nan_result: \is_NaN(\result);
-    ensures errno_set: errno == EDOM;
-  behavior nan:
-    assumes nan_arg: \is_NaN(x);
-    assigns \result \from x;
-    ensures nan_result: \is_NaN(\result);
-    ensures no_error: errno == \old(errno);
-  complete behaviors;
-  disjoint behaviors;
+  ensures maybe_error: errno == \old(errno) || errno == EDOM || errno == ERANGE;
 */
 extern long double tanl(long double x);
 
diff --git a/src/plugins/report/tests/report/oracle/csv.csv b/src/plugins/report/tests/report/oracle/csv.csv
index 45b8af5a1ea51d44df8e8796399002b6ff76ae2f..e4dc4df6f00008cade09bda50ddf0b94122d3d92 100644
--- a/src/plugins/report/tests/report/oracle/csv.csv
+++ b/src/plugins/report/tests/report/oracle/csv.csv
@@ -1,5 +1,5 @@
 directory	file	line	function	property kind	status	property
-FRAMAC_SHARE/libc	math.h	1226	pow	precondition	Unknown	finite_logic_res: \is_finite(pow(x, y))
+FRAMAC_SHARE/libc	math.h	1207	pow	precondition	Unknown	finite_logic_res: \is_finite(pow(x, y))
 tests/report	csv.c	11	main1	signed_overflow	Unknown	-2147483648 ≤ x * x
 tests/report	csv.c	11	main1	signed_overflow	Unknown	x * x ≤ 2147483647
 tests/report	csv.c	12	main1	index_bound	Unknown	0 ≤ x
diff --git a/tests/idct/oracle/ieee_1180_1990.res.oracle b/tests/idct/oracle/ieee_1180_1990.res.oracle
index 869dfb38a97c2c90cdd70c2e28efc7714afde126..eb9d1531fcfbd9c001b76a9946ccc398d95d516e 100644
--- a/tests/idct/oracle/ieee_1180_1990.res.oracle
+++ b/tests/idct/oracle/ieee_1180_1990.res.oracle
@@ -2897,44 +2897,24 @@
 --- Properties of Function 'tanl'
 --------------------------------------------------------------------------------
 
-[ Extern  ] Post-condition for 'zero' 'zero_res'
-            ensures zero_res: \is_finite(\result) ∧ \result ≡ \old(x)
-            Unverifiable but considered Valid.
-[ Extern  ] Post-condition for 'zero' 'no_error'
-            ensures no_error: __fc_errno ≡ \old(__fc_errno)
-            Unverifiable but considered Valid.
-[ Extern  ] Post-condition for 'finite_non_zero' 'finite_result'
-            ensures finite_result: \is_finite(\result)
-            Unverifiable but considered Valid.
-[ Extern  ] Post-condition for 'finite_non_zero' 'maybe_error'
+[ Extern  ] Post-condition 'maybe_error'
             ensures
             maybe_error:
-              __fc_errno ≡ \old(__fc_errno) ∨ __fc_errno ≡ 34
+              __fc_errno ≡ \old(__fc_errno) ∨ __fc_errno ≡ 33 ∨
+              __fc_errno ≡ 34
             Unverifiable but considered Valid.
 [ Extern  ] Assigns (file share/libc/math.h, line 529)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
-[ Extern  ] Assigns for 'zero' nothing
-            assigns \nothing;
-            Unverifiable but considered Valid.
 [ Extern  ] Froms (file share/libc/math.h, line 529)
             assigns __fc_errno \from x;
             Unverifiable but considered Valid.
 [ Extern  ] Froms (file share/libc/math.h, line 529)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms for 'zero' (file share/libc/math.h, line 532)
-            assigns \result \from x;
-            Unverifiable but considered Valid.
 [  Valid  ] Default behavior
             default behavior
             by Frama-C kernel.
-[  Valid  ] Behavior 'finite_non_zero'
-            behavior finite_non_zero
-            by Frama-C kernel.
-[  Valid  ] Behavior 'zero'
-            behavior zero
-            by Frama-C kernel.
 
 --------------------------------------------------------------------------------
 --- Properties of Function 'acosh'
@@ -2949,7 +2929,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 557)
+[ Extern  ] Froms (file share/libc/math.h, line 538)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -2969,7 +2949,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 583)
+[ Extern  ] Froms (file share/libc/math.h, line 564)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -2989,7 +2969,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 609)
+[ Extern  ] Froms (file share/libc/math.h, line 590)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3021,7 +3001,7 @@
 [ Extern  ] Post-condition for 'minus_infinity' 'no_error'
             ensures no_error: __fc_errno ≡ \old(__fc_errno)
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 652)
+[ Extern  ] Assigns (file share/libc/math.h, line 633)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
 [ Extern  ] Assigns for 'minus_infinity' nothing
@@ -3030,16 +3010,16 @@
 [ Extern  ] Assigns for 'normal' nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 652)
+[ Extern  ] Froms (file share/libc/math.h, line 633)
             assigns __fc_errno \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 652)
+[ Extern  ] Froms (file share/libc/math.h, line 633)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms for 'minus_infinity' (file share/libc/math.h, line 675)
+[ Extern  ] Froms for 'minus_infinity' (file share/libc/math.h, line 656)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms for 'normal' (file share/libc/math.h, line 656)
+[ Extern  ] Froms for 'normal' (file share/libc/math.h, line 637)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3080,7 +3060,7 @@
 [ Extern  ] Post-condition for 'minus_infinity' 'no_error'
             ensures no_error: __fc_errno ≡ \old(__fc_errno)
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 689)
+[ Extern  ] Assigns (file share/libc/math.h, line 670)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
 [ Extern  ] Assigns for 'minus_infinity' nothing
@@ -3089,16 +3069,16 @@
 [ Extern  ] Assigns for 'normal' nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 689)
+[ Extern  ] Froms (file share/libc/math.h, line 670)
             assigns __fc_errno \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 689)
+[ Extern  ] Froms (file share/libc/math.h, line 670)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms for 'minus_infinity' (file share/libc/math.h, line 712)
+[ Extern  ] Froms for 'minus_infinity' (file share/libc/math.h, line 693)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms for 'normal' (file share/libc/math.h, line 693)
+[ Extern  ] Froms for 'normal' (file share/libc/math.h, line 674)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3139,13 +3119,13 @@
 [ Extern  ] Post-condition for 'zero' 'zero_exp'
             ensures zero_exp: *\old(exp) ≡ 0
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 737)
+[ Extern  ] Assigns (file share/libc/math.h, line 718)
             assigns \result, *exp;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 737)
+[ Extern  ] Froms (file share/libc/math.h, line 718)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 737)
+[ Extern  ] Froms (file share/libc/math.h, line 718)
             assigns *exp \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3183,13 +3163,13 @@
 [ Extern  ] Post-condition for 'zero' 'zero_exp'
             ensures zero_exp: *\old(exp) ≡ 0
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 764)
+[ Extern  ] Assigns (file share/libc/math.h, line 745)
             assigns \result, *exp;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 764)
+[ Extern  ] Froms (file share/libc/math.h, line 745)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 764)
+[ Extern  ] Froms (file share/libc/math.h, line 745)
             assigns *exp \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3227,13 +3207,13 @@
 [ Extern  ] Post-condition for 'zero' 'zero_exp'
             ensures zero_exp: *\old(exp) ≡ 0
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 791)
+[ Extern  ] Assigns (file share/libc/math.h, line 772)
             assigns \result, *exp;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 791)
+[ Extern  ] Froms (file share/libc/math.h, line 772)
             assigns \result \from x;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 791)
+[ Extern  ] Froms (file share/libc/math.h, line 772)
             assigns *exp \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3257,13 +3237,13 @@
             ensures
             __fc_errno: __fc_errno ≡ 34 ∨ __fc_errno ≡ \old(__fc_errno)
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 821)
+[ Extern  ] Assigns (file share/libc/math.h, line 802)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 821)
+[ Extern  ] Froms (file share/libc/math.h, line 802)
             assigns __fc_errno \from x, exp;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 821)
+[ Extern  ] Froms (file share/libc/math.h, line 802)
             assigns \result \from x, exp;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3281,13 +3261,13 @@
             ensures
             __fc_errno: __fc_errno ≡ 34 ∨ __fc_errno ≡ \old(__fc_errno)
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 841)
+[ Extern  ] Assigns (file share/libc/math.h, line 822)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 841)
+[ Extern  ] Froms (file share/libc/math.h, line 822)
             assigns __fc_errno \from x, exp;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 841)
+[ Extern  ] Froms (file share/libc/math.h, line 822)
             assigns \result \from x, exp;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3307,7 +3287,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 867)
+[ Extern  ] Froms (file share/libc/math.h, line 848)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3327,7 +3307,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 898)
+[ Extern  ] Froms (file share/libc/math.h, line 879)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3347,7 +3327,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 929)
+[ Extern  ] Froms (file share/libc/math.h, line 910)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3367,7 +3347,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 960)
+[ Extern  ] Froms (file share/libc/math.h, line 941)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3387,7 +3367,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 991)
+[ Extern  ] Froms (file share/libc/math.h, line 972)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3407,7 +3387,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1022)
+[ Extern  ] Froms (file share/libc/math.h, line 1003)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3427,7 +3407,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1057)
+[ Extern  ] Froms (file share/libc/math.h, line 1038)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3447,7 +3427,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1088)
+[ Extern  ] Froms (file share/libc/math.h, line 1069)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3467,7 +3447,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1119)
+[ Extern  ] Froms (file share/libc/math.h, line 1100)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3492,7 +3472,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1166)
+[ Extern  ] Froms (file share/libc/math.h, line 1147)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3517,7 +3497,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1184)
+[ Extern  ] Froms (file share/libc/math.h, line 1165)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3542,7 +3522,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1202)
+[ Extern  ] Froms (file share/libc/math.h, line 1183)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3560,13 +3540,13 @@
             ensures
             __fc_errno: __fc_errno ≡ 34 ∨ __fc_errno ≡ \old(__fc_errno)
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 1224)
+[ Extern  ] Assigns (file share/libc/math.h, line 1205)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1224)
+[ Extern  ] Froms (file share/libc/math.h, line 1205)
             assigns __fc_errno \from x, y;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1224)
+[ Extern  ] Froms (file share/libc/math.h, line 1205)
             assigns \result \from x, y;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3584,13 +3564,13 @@
             ensures
             __fc_errno: __fc_errno ≡ 34 ∨ __fc_errno ≡ \old(__fc_errno)
             Unverifiable but considered Valid.
-[ Extern  ] Assigns (file share/libc/math.h, line 1239)
+[ Extern  ] Assigns (file share/libc/math.h, line 1220)
             assigns __fc_errno, \result;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1239)
+[ Extern  ] Froms (file share/libc/math.h, line 1220)
             assigns __fc_errno \from x, y;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1239)
+[ Extern  ] Froms (file share/libc/math.h, line 1220)
             assigns \result \from x, y;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3622,7 +3602,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1260)
+[ Extern  ] Froms (file share/libc/math.h, line 1241)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3648,7 +3628,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1289)
+[ Extern  ] Froms (file share/libc/math.h, line 1270)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3671,7 +3651,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1318)
+[ Extern  ] Froms (file share/libc/math.h, line 1299)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3688,7 +3668,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1358)
+[ Extern  ] Froms (file share/libc/math.h, line 1339)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3705,7 +3685,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1375)
+[ Extern  ] Froms (file share/libc/math.h, line 1356)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3722,7 +3702,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1392)
+[ Extern  ] Froms (file share/libc/math.h, line 1373)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3739,7 +3719,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1409)
+[ Extern  ] Froms (file share/libc/math.h, line 1390)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3756,7 +3736,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1426)
+[ Extern  ] Froms (file share/libc/math.h, line 1407)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3773,7 +3753,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1443)
+[ Extern  ] Froms (file share/libc/math.h, line 1424)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3790,7 +3770,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1476)
+[ Extern  ] Froms (file share/libc/math.h, line 1457)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3807,7 +3787,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1493)
+[ Extern  ] Froms (file share/libc/math.h, line 1474)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3824,7 +3804,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1510)
+[ Extern  ] Froms (file share/libc/math.h, line 1491)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3841,7 +3821,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1535)
+[ Extern  ] Froms (file share/libc/math.h, line 1516)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3858,7 +3838,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1552)
+[ Extern  ] Froms (file share/libc/math.h, line 1533)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3875,7 +3855,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1569)
+[ Extern  ] Froms (file share/libc/math.h, line 1550)
             assigns \result \from x;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3895,7 +3875,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1589)
+[ Extern  ] Froms (file share/libc/math.h, line 1570)
             assigns \result \from x, y;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3915,7 +3895,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1610)
+[ Extern  ] Froms (file share/libc/math.h, line 1591)
             assigns \result \from x, y;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3932,7 +3912,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1643)
+[ Extern  ] Froms (file share/libc/math.h, line 1624)
             assigns \result \from (indirect: *(tagp + (0 ..)));
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3949,7 +3929,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1650)
+[ Extern  ] Froms (file share/libc/math.h, line 1631)
             assigns \result \from (indirect: *(tagp + (0 ..)));
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3966,7 +3946,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1657)
+[ Extern  ] Froms (file share/libc/math.h, line 1638)
             assigns \result \from (indirect: *(tagp + (0 ..)));
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -3986,7 +3966,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1687)
+[ Extern  ] Froms (file share/libc/math.h, line 1668)
             assigns \result \from f;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -4012,7 +3992,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1700)
+[ Extern  ] Froms (file share/libc/math.h, line 1681)
             assigns \result \from d;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -4035,7 +4015,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1727)
+[ Extern  ] Froms (file share/libc/math.h, line 1708)
             assigns \result \from \nothing;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -4052,7 +4032,7 @@
 [ Extern  ] Assigns nothing
             assigns \nothing;
             Unverifiable but considered Valid.
-[ Extern  ] Froms (file share/libc/math.h, line 1733)
+[ Extern  ] Froms (file share/libc/math.h, line 1714)
             assigns \result \from \nothing;
             Unverifiable but considered Valid.
 [  Valid  ] Default behavior
@@ -4414,9 +4394,9 @@
 --------------------------------------------------------------------------------
 --- Status Report Summary
 --------------------------------------------------------------------------------
-   193 Completely validated
+   191 Completely validated
     16 Locally validated
-   561 Considered valid
+   556 Considered valid
     56 To be validated
-   826 Total
+   819 Total
 --------------------------------------------------------------------------------
diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle
index bf59c3d6baf304214026d562278211f402a72106..cb12a8c02f4c6735f093d2531f5b348a18e673c2 100644
--- a/tests/libc/oracle/fc_libc.1.res.oracle
+++ b/tests/libc/oracle/fc_libc.1.res.oracle
@@ -3806,27 +3806,13 @@ extern double tan(double x);
  */
 extern float tanf(float x);
 
-/*@ requires ¬(infinite_arg: \is_infinite(x));
-    requires ¬(nan_arg: \is_NaN(x));
+/*@ ensures
+      maybe_error:
+        __fc_errno ≡ \old(__fc_errno) ∨ __fc_errno ≡ 33 ∨
+        __fc_errno ≡ 34;
     assigns __fc_errno, \result;
     assigns __fc_errno \from x;
     assigns \result \from x;
-    
-    behavior zero:
-      assumes zero_arg: \is_finite(x) ∧ x ≡ 0.;
-      ensures zero_res: \is_finite(\result) ∧ \result ≡ \old(x);
-      ensures no_error: __fc_errno ≡ \old(__fc_errno);
-      assigns \result;
-      assigns \result \from x;
-    
-    behavior finite_non_zero:
-      assumes finite_arg: \is_finite(x) ∧ x ≢ 0.;
-      ensures finite_result: \is_finite(\result);
-      ensures
-        maybe_error: __fc_errno ≡ \old(__fc_errno) ∨ __fc_errno ≡ 34;
-    
-    complete behaviors finite_non_zero, zero;
-    disjoint behaviors finite_non_zero, zero;
  */
 extern long double tanl(long double x);
 
diff --git a/tests/libc/oracle/math_h.1.res.oracle b/tests/libc/oracle/math_h.1.res.oracle
index 7b044ea68c6299473004aae7f4040ab276e96016..39d3fa1f6ccd2cbf00633eb8fd81f53a21d85c5a 100644
--- a/tests/libc/oracle/math_h.1.res.oracle
+++ b/tests/libc/oracle/math_h.1.res.oracle
@@ -434,68 +434,32 @@
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
 [eva] using specification for function tanl
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva:alarm] tests/libc/math_h.c:88: Warning: 
   NaN long double value. assert ¬\is_NaN(ld_top);
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva:alarm] tests/libc/math_h.c:88: Warning: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status unknown.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tan <- main.
   Called from tests/libc/math_h.c:88.
@@ -527,17 +491,9 @@
 [eva] Done for function tanf
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva:alarm] tests/libc/math_h.c:88: Warning: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status invalid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: no state left, precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva:alarm] tests/libc/math_h.c:88: Warning: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status invalid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: no state left, precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function frexp <- main.
   Called from tests/libc/math_h.c:90.
diff --git a/tests/libc/oracle/math_h.2.res.oracle b/tests/libc/oracle/math_h.2.res.oracle
index 2c5443e6086f72eadb95e0f251ae0cb3be6906b3..886f7eb4b1161f9d02d92c3e554d8d4b35032e5c 100644
--- a/tests/libc/oracle/math_h.2.res.oracle
+++ b/tests/libc/oracle/math_h.2.res.oracle
@@ -408,68 +408,32 @@
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
 [eva] using specification for function tanl
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status valid.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva:alarm] tests/libc/math_h.c:88: Warning: 
   non-finite long double value. assert \is_finite(ld_top);
 [eva] computing for function tanl <- main.
   Called from tests/libc/math_h.c:88.
-[eva:alarm] tests/libc/math_h.c:88: Warning: 
-  function tanl: precondition ¬(infinite_arg: \is_infinite(x)) got status unknown.
-[eva] tests/libc/math_h.c:88: 
-  function tanl: precondition ¬(nan_arg: \is_NaN(x)) got status valid.
 [eva] Done for function tanl
 [eva] computing for function frexp <- main.
   Called from tests/libc/math_h.c:90.