1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
% -----------------------------------------------------------------------------
% (C) Altran Praxis Limited
% -----------------------------------------------------------------------------
%
% The SPARK toolset is free software; you can redistribute it and/or modify it
% under terms of the GNU General Public License as published by the Free
% Software Foundation; either version 3, or (at your option) any later
% version. The SPARK toolset is distributed in the hope that it will be
% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
% Public License for more details. You should have received a copy of the GNU
% General Public License distributed with the SPARK toolset; see file
% COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy of
% the license.
%
% =============================================================================
%###############################################################################
% PURPOSE
%-------------------------------------------------------------------------------
% A HypList-free interface to various predicates such as infer(Formula,
% HypList). (In the Proof Checker, infer(Formula) does not return a list
% of hypotheses used. The Simplifier code was derived from the Checker
% code, but with the additional argument in a number of predicates, to aid
% construction of a simplification log recording its reasoning. The
% HypList-free variants are still used by other bits of legacy code
% inherited from the Checker, however, hence this module.)
%###############################################################################
%###############################################################################
% DEPENDENCIES
%###############################################################################
%###############################################################################
% TYPES
%###############################################################################
%###############################################################################
% DATA
%###############################################################################
%###############################################################################
% PREDICATES
%###############################################################################
deduce_formula(F, T, Hs) :-
deduce(F, T, HL),
sort(HL, Hs),
!.
%-------------------------------------------------------------------------------
/* infer: interface to the inference engine for the expression simplifier.
This checks to see if there is already an inference_depth_limit in place,
and uses it if so, or imposes the default one if not. */
infer(Goal) :-
inference_depth_limit(main, _), /* it exists */
!,
infer_subgoal(Goal, _).
infer(Goal) :- /* otherwise */
infer(Goal, _).
%-------------------------------------------------------------------------------
simplification_is_on :-
simplification(on),
!,
current_vc_number(N),
!,
\+ simplification(N, off),
!.
%-------------------------------------------------------------------------------
standardisation_is_on :-
standardisation(on),
!,
current_vc_number(N),
!,
\+ standardisation(N, off),
!.
%-------------------------------------------------------------------------------
contradiction_hunt_is_on :-
\+ contradiction_hunt(off),
!,
current_vc_number(N),
!,
\+ contradiction_hunt(N, off),
!.
%-------------------------------------------------------------------------------
expression_reduction_is_on :-
expression_reduction(on),
!,
current_vc_number(N),
!,
\+ expression_reduction(N, off),
!.
%-------------------------------------------------------------------------------
substitution_elimination_is_on :-
substitution_elimination(on),
!,
current_vc_number(N),
!,
\+ substitution_elimination(N, off),
!.
%-------------------------------------------------------------------------------
rule_substitution_is_on :-
rule_substitution(on),
!,
current_vc_number(N),
!,
\+ rule_substitution(N, off),
!.
%###############################################################################
% END-OF-FILE
|