SSL quadratic.pvs
Interaktion und PortierbarkeitPVS
%---------------------------------------------------------------------------- % % Authors: Cesar Munoz, Alfons Geser NASA ICASE % % NOTE: % Introduced root(a,b,c,eps). x1 and x2 are defined as macros for % backward compatibility. % Predicate solvable has been eliminated. % not_solvable_quadratic is a LEMMA rather than an AXIOM % Definitions of x1 and x2 revised. % bac renamed discr % Consequences of canonical_sq added. % Vieta's equations (lemma vieta1 and vieta2) added. % x1_eq_x2 added. % %----------------------------------------------------------------------------
quadratic : THEORY BEGIN IMPORTING sqrt, sign
a : VAR nonzero_real
aa,b,c : VAR real
x : VAR real
eps : VAR Sign
k : VAR nzreal
not_solvable_quadratic : LEMMA NOT discr(a,b,c) >= 0 =>
((FORALL(x) : a * sq(x) + b*x + c > 0) OR
(FORALL(x) : a * sq(x) + b*x + c < 0))
quadratic_le_0 : LEMMA
a*sq(x) + b*x + c <= 0 IFF
((discr(a,b,c) >= 0 AND
((a > 0 AND x2(a,b,c) <= x AND x <= x1(a,b,c)) OR
(a < 0 AND (x <= x1(a,b,c) OR x2(a,b,c) <= x)))) OR
(discr(a,b,c) < 0 AND c <= 0))
quadratic_lt_0 : LEMMA
a*sq(x) + b*x + c < 0 IFF
((discr(a,b,c) >= 0 AND
((a > 0 AND x2(a,b,c) < x AND x < x1(a,b,c)) OR
(a < 0 AND ((x < x1(a,b,c) AND x < x2(a,b,c)) OR
(x1(a,b,c) < x AND x2(a,b,c) < x))))) OR
(discr(a,b,c) < 0 AND c < 0))
quadratic_ge_0 : LEMMA
a*sq(x) + b*x + c >= 0 IFF
((discr(a,b,c) >= 0 AND
((a < 0 AND x1(a,b,c) <= x AND x <= x2(a,b,c)) OR
(a > 0 AND (x <= x2(a,b,c) OR x1(a,b,c) <= x)))) OR
(discr(a,b,c) < 0 AND c >= 0))
quadratic_gt_0 : LEMMA
a*sq(x) + b*x + c > 0 IFF
((discr(a,b,c) >= 0 AND
((a < 0 AND x1(a,b,c) < x AND x < x2(a,b,c)) OR
(a > 0 AND (x < x2(a,b,c) OR x1(a,b,c) < x)))) OR
(discr(a,b,c) < 0 AND c > 0))
%% quadratic equations that may collapse to linear equations %% and the solutions of such equations
solvable?(aa,b,c): bool =
(aa = 0 AND b /= 0 OR aa /= 0 AND discr(aa,b,c) >= 0)
solution(aa,b,(c | solvable?(aa,b,c)), eps: Sign): real = IF aa = 0 THEN -c/b ELSE root(aa,b,c,eps) ENDIF
quadratic_eq_0_full: THEOREM
aa*sq(x) + b*x + c = 0 IFF
aa = 0 AND b = 0 AND c = 0 OR
solvable?(aa,b,c) AND (x = solution(aa,b,c,-1) OR x = solution(aa,b,c,1))
%% --- Some unexpanded forms ---
quadratic(a,b,c: real)(x): real = a*sq(x) + b*x + c
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.