begin
Th1:
for X being set
for f being FinSequence of X
for i being Nat st 1 <= i & i <= len f holds
f . i = f /. i
theorem Th2:
theorem Th3:
theorem Th4:
begin
theorem Th5:
:: deftheorem defines 'not' LTLAXIO1:def 1 :
for p being Element of LTLB_WFF holds 'not' p = p => TFALSUM;
:: deftheorem defines 'X' LTLAXIO1:def 2 :
for p being Element of LTLB_WFF holds 'X' p = TFALSUM 'Us' p;
:: deftheorem defines TVERUM LTLAXIO1:def 3 :
TVERUM = 'not' TFALSUM;
:: deftheorem defines '&&' LTLAXIO1:def 4 :
for p, q being Element of LTLB_WFF holds p '&&' q = (p => (q => TFALSUM)) => TFALSUM;
:: deftheorem defines 'or' LTLAXIO1:def 5 :
for p, q being Element of LTLB_WFF holds p 'or' q = 'not' (('not' p) '&&' ('not' q));
:: deftheorem defines 'G' LTLAXIO1:def 6 :
for p being Element of LTLB_WFF holds 'G' p = 'not' (('not' p) 'or' (TVERUM '&&' (TVERUM 'Us' ('not' p))));
:: deftheorem defines 'F' LTLAXIO1:def 7 :
for p being Element of LTLB_WFF holds 'F' p = 'not' ('G' ('not' p));
:: deftheorem defines 'U' LTLAXIO1:def 8 :
for p, q being Element of LTLB_WFF holds p 'U' q = q 'or' (p '&&' (p 'Us' q));
:: deftheorem defines 'R' LTLAXIO1:def 9 :
for p, q being Element of LTLB_WFF holds p 'R' q = 'not' (('not' p) 'U' ('not' q));
begin
:: deftheorem defines props LTLAXIO1:def 10 :
for b1 being Subset of LTLB_WFF holds
( b1 = props iff for x being set holds
( x in b1 iff ex n being Element of NAT st x = prop n ) );
definition
let M be
LTLModel;
func SAT M -> Function of
[:NAT,LTLB_WFF:],
BOOLEAN means :
Def12:
for
n being
Element of
NAT holds
(
it . [n,TFALSUM] = 0 & ( for
k being
Element of
NAT holds
(
it . [n,(prop k)] = 1 iff
prop k in M . n ) ) & ( for
p,
q being
Element of
LTLB_WFF holds
(
it . [n,(p => q)] = (it . [n,p]) => (it . [n,q]) & (
it . [n,(p 'Us' q)] = 1 implies ex
i being
Element of
NAT st
(
0 < i &
it . [(n + i),q] = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
it . [(n + j),p] = 1 ) ) ) & ( ex
i being
Element of
NAT st
(
0 < i &
it . [(n + i),q] = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
it . [(n + j),p] = 1 ) ) implies
it . [n,(p 'Us' q)] = 1 ) ) ) );
existence
ex b1 being Function of [:NAT,LTLB_WFF:],BOOLEAN st
for n being Element of NAT holds
( b1 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( b1 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( b1 . [n,(p => q)] = (b1 . [n,p]) => (b1 . [n,q]) & ( b1 . [n,(p 'Us' q)] = 1 implies ex i being Element of NAT st
( 0 < i & b1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b1 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & b1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b1 . [(n + j),p] = 1 ) ) implies b1 . [n,(p 'Us' q)] = 1 ) ) ) )
uniqueness
for b1, b2 being Function of [:NAT,LTLB_WFF:],BOOLEAN st ( for n being Element of NAT holds
( b1 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( b1 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( b1 . [n,(p => q)] = (b1 . [n,p]) => (b1 . [n,q]) & ( b1 . [n,(p 'Us' q)] = 1 implies ex i being Element of NAT st
( 0 < i & b1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b1 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & b1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b1 . [(n + j),p] = 1 ) ) implies b1 . [n,(p 'Us' q)] = 1 ) ) ) ) ) & ( for n being Element of NAT holds
( b2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( b2 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( b2 . [n,(p => q)] = (b2 . [n,p]) => (b2 . [n,q]) & ( b2 . [n,(p 'Us' q)] = 1 implies ex i being Element of NAT st
( 0 < i & b2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & b2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b2 . [(n + j),p] = 1 ) ) implies b2 . [n,(p 'Us' q)] = 1 ) ) ) ) ) holds
b1 = b2
end;
:: deftheorem Def12 defines SAT LTLAXIO1:def 11 :
for M being LTLModel
for b2 being Function of [:NAT,LTLB_WFF:],BOOLEAN holds
( b2 = SAT M iff for n being Element of NAT holds
( b2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( b2 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( b2 . [n,(p => q)] = (b2 . [n,p]) => (b2 . [n,q]) & ( b2 . [n,(p 'Us' q)] = 1 implies ex i being Element of NAT st
( 0 < i & b2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & b2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
b2 . [(n + j),p] = 1 ) ) implies b2 . [n,(p 'Us' q)] = 1 ) ) ) ) );
theorem Th6:
theorem Th7:
theorem Th8:
theorem Th9:
theorem Th10:
theorem Th11:
theorem Th12:
theorem Th13:
theorem
theorem Th15:
theorem Th16:
theorem Th17:
theorem Th18:
theorem Th19:
theorem Th20:
theorem Th21:
theorem Th22:
begin
:: deftheorem Def13 defines |= LTLAXIO1:def 12 :
for M being LTLModel
for p being Element of LTLB_WFF holds
( M |= p iff for n being Element of NAT holds (SAT M) . [n,p] = 1 );
:: deftheorem Def14 defines |= LTLAXIO1:def 13 :
for M being LTLModel
for F being Subset of LTLB_WFF holds
( M |= F iff for p being Element of LTLB_WFF st p in F holds
M |= p );
:: deftheorem Def15 defines |= LTLAXIO1:def 14 :
for F being Subset of LTLB_WFF
for p being Element of LTLB_WFF holds
( F |= p iff for M being LTLModel st M |= F holds
M |= p );
theorem Th23:
theorem Th24:
theorem Th25:
theorem Th26:
theorem
theorem Th28:
theorem Th29:
theorem Th30:
theorem
:: deftheorem Def16 defines VAL LTLAXIO1:def 15 :
for f, b2 being Function of LTLB_WFF,BOOLEAN holds
( b2 = VAL f iff for A, B being Element of LTLB_WFF
for n being Element of NAT holds
( b2 . TFALSUM = 0 & b2 . (prop n) = f . (prop n) & b2 . (A => B) = (b2 . A) => (b2 . B) & b2 . (A 'Us' B) = f . (A 'Us' B) ) );
theorem Th32:
theorem Th33:
:: deftheorem Def17 defines LTL_TAUT_OF_PL LTLAXIO1:def 16 :
for p being Element of LTLB_WFF holds
( p is LTL_TAUT_OF_PL iff for f being Function of LTLB_WFF,BOOLEAN holds (VAL f) . p = 1 );
theorem Th34:
begin
:: deftheorem Def18 defines with_LTL_axioms LTLAXIO1:def 17 :
for D being set holds
( D is with_LTL_axioms iff for p, q being Element of LTLB_WFF holds
( ( p is LTL_TAUT_OF_PL implies p in D ) & ('not' ('X' p)) => ('X' ('not' p)) in D & ('X' ('not' p)) => ('not' ('X' p)) in D & ('X' (p => q)) => (('X' p) => ('X' q)) in D & ('G' p) => (p '&&' ('X' ('G' p))) in D & (p 'Us' q) => (('X' q) 'or' ('X' (p '&&' (p 'Us' q)))) in D & (('X' q) 'or' ('X' (p '&&' (p 'Us' q)))) => (p 'Us' q) in D & (p 'Us' q) => ('X' ('F' q)) in D ) );
:: deftheorem Def19 defines LTL_axioms LTLAXIO1:def 18 :
for b1 being Subset of LTLB_WFF holds
( b1 = LTL_axioms iff ( b1 is with_LTL_axioms & ( for D being Subset of LTLB_WFF st D is with_LTL_axioms holds
b1 c= D ) ) );
theorem Th36:
theorem Th37:
:: deftheorem Def20 defines NEX_rule LTLAXIO1:def 19 :
for p, q being Element of LTLB_WFF holds
( p NEX_rule q iff q = 'X' p );
:: deftheorem Def21 defines MP_rule LTLAXIO1:def 20 :
for p, q, r being Element of LTLB_WFF holds
( p,q MP_rule r iff q = p => r );
:: deftheorem Def22 defines IND_rule LTLAXIO1:def 21 :
for p, q, r being Element of LTLB_WFF holds
( p,q IND_rule r iff ex A, B being Element of LTLB_WFF st
( p = A => B & q = A => ('X' A) & r = A => ('G' B) ) );
:: deftheorem Def23 defines axltl1 LTLAXIO1:def 22 :
for A being Element of LTLB_WFF holds
( A is axltl1 iff ex B being Element of LTLB_WFF st A = ('not' ('X' B)) => ('X' ('not' B)) );
:: deftheorem Def24 defines axltl1a LTLAXIO1:def 23 :
for A being Element of LTLB_WFF holds
( A is axltl1a iff ex B being Element of LTLB_WFF st A = ('X' ('not' B)) => ('not' ('X' B)) );
:: deftheorem Def25 defines axltl2 LTLAXIO1:def 24 :
for A being Element of LTLB_WFF holds
( A is axltl2 iff ex B, C being Element of LTLB_WFF st A = ('X' (B => C)) => (('X' B) => ('X' C)) );
:: deftheorem Def26 defines axltl3 LTLAXIO1:def 25 :
for A being Element of LTLB_WFF holds
( A is axltl3 iff ex B being Element of LTLB_WFF st A = ('G' B) => (B '&&' ('X' ('G' B))) );
:: deftheorem Def27 defines axltl4 LTLAXIO1:def 26 :
for A being Element of LTLB_WFF holds
( A is axltl4 iff ex B, C being Element of LTLB_WFF st A = (B 'Us' C) => (('X' C) 'or' ('X' (B '&&' (B 'Us' C)))) );
:: deftheorem Def28 defines axltl5 LTLAXIO1:def 27 :
for A being Element of LTLB_WFF holds
( A is axltl5 iff ex B, C being Element of LTLB_WFF st A = (('X' C) 'or' ('X' (B '&&' (B 'Us' C)))) => (B 'Us' C) );
:: deftheorem Def29 defines axltl6 LTLAXIO1:def 28 :
for A being Element of LTLB_WFF holds
( A is axltl6 iff ex B, C being Element of LTLB_WFF st A = (B 'Us' C) => ('X' ('F' C)) );
theorem Th38:
theorem Th39:
:: deftheorem Def30 defines prc LTLAXIO1:def 29 :
for i being Nat
for f being FinSequence of LTLB_WFF
for X being Subset of LTLB_WFF holds
( prc f,X,i iff ( f . i in LTL_axioms or f . i in X or ex j, k being Nat st
( 1 <= j & j < i & 1 <= k & k < i & ( f /. j,f /. k MP_rule f /. i or f /. j,f /. k IND_rule f /. i ) ) or ex j being Nat st
( 1 <= j & j < i & f /. j NEX_rule f /. i ) ) );
:: deftheorem Def31 defines |- LTLAXIO1:def 30 :
for X being Subset of LTLB_WFF
for p being Element of LTLB_WFF holds
( X |- p iff ex f being FinSequence of LTLB_WFF st
( f . (len f) = p & 1 <= len f & ( for i being Nat st 1 <= i & i <= len f holds
prc f,X,i ) ) );
theorem Th40:
theorem Th41:
theorem Th42:
theorem
begin
theorem Th44:
theorem Th45:
theorem Th46:
theorem Th47:
theorem Th48:
theorem Th49:
theorem Th50:
theorem Th51:
theorem Th52:
theorem Th53:
theorem Th54:
theorem Th55:
theorem Th56:
theorem Th57:
theorem Th58:
theorem Th59:
theorem
theorem
theorem