The input of the tool set is the negation of the LRTL behavioral model in Conjunctive Normal Form. This means that we should perform the first three steps of the algorithm manually. The first three steps are as below:
consider F= ¬(SP → SA);
convert it to a Presburger formula: FPresb=Presb(F);
and, construct the Skolem formula:FCNF Skolem(F).
We will be using the data from this SATS project to demonstrate how jLRTLV works.
Once we have our data in format that we like (through the first 3 steps of the LRTL algorithm, as explained here) we do the following things:
For this set of input data, the generic solution [ a a ... a ] is obtained for row vector Λ1x131 =[ λ1 ... λ131 ] by solving Λ1x131A131x76=0. Positive row vectors Λ1x131=[ a a ... a] are identified such that a=1. Therefore, ΛB=-28a<0 can be held by replacing the variable a with any positive number. As the negative linear dependent of the system exists, the negative clause {¬A1,¬A2,...,¬A131} can be added to the set of negative clauses Fneg. Regarding the LRTL algorithm, the negative clause Fneg must be united with Fpos to build the propositional formula PF= Fpos∪Fneg. The unsatisfiability of the PF, which is the negation of SP→SA, requires that SP→SA is a theorem; the specification of the system implies its safety assertions.
The following matrix is the matrix that is created upon the processing of the SATS data in text format: SATS csv. This matrix has been debugged and has columns which all sum to zero. Because of this we know that the if sum of the right side of all inequalities in the system is negative then there is a generic positive lambda which produces a negative scalar value when multiplied by the column vector consisting of the right side of all inequalities in the specification. In this specific scenario this is our expected ( and actual ) result: