let X be Subset of MC-wff; :: thesis: CnS4 X is S4_theory
let p be Element of MC-wff ; :: according to INTPRO_1:def 22 :: thesis: for q, r being Element of MC-wff holds
( p => (q => p) in CnS4 X & (p => (q => r)) => ((p => q) => (p => r)) in CnS4 X & (p '&' q) => p in CnS4 X & (p '&' q) => q in CnS4 X & p => (q => (p '&' q)) in CnS4 X & p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )

let q, r be Element of MC-wff ; :: thesis: ( p => (q => p) in CnS4 X & (p => (q => r)) => ((p => q) => (p => r)) in CnS4 X & (p '&' q) => p in CnS4 X & (p '&' q) => q in CnS4 X & p => (q => (p '&' q)) in CnS4 X & p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus p => (q => p) in CnS4 X by Th82; :: thesis: ( (p => (q => r)) => ((p => q) => (p => r)) in CnS4 X & (p '&' q) => p in CnS4 X & (p '&' q) => q in CnS4 X & p => (q => (p '&' q)) in CnS4 X & p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (p => (q => r)) => ((p => q) => (p => r)) in CnS4 X by Th82; :: thesis: ( (p '&' q) => p in CnS4 X & (p '&' q) => q in CnS4 X & p => (q => (p '&' q)) in CnS4 X & p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (p '&' q) => p in CnS4 X by Th82; :: thesis: ( (p '&' q) => q in CnS4 X & p => (q => (p '&' q)) in CnS4 X & p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (p '&' q) => q in CnS4 X by Th82; :: thesis: ( p => (q => (p '&' q)) in CnS4 X & p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus p => (q => (p '&' q)) in CnS4 X by Th82; :: thesis: ( p => (p 'or' q) in CnS4 X & q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus p => (p 'or' q) in CnS4 X by Th82; :: thesis: ( q => (p 'or' q) in CnS4 X & (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus q => (p 'or' q) in CnS4 X by Th82; :: thesis: ( (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X & FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (p => r) => ((q => r) => ((p 'or' q) => r)) in CnS4 X by Th82; :: thesis: ( FALSUM => p in CnS4 X & p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus FALSUM => p in CnS4 X by Th82; :: thesis: ( p 'or' (p => FALSUM) in CnS4 X & (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus p 'or' (p => FALSUM) in CnS4 X by Th82; :: thesis: ( (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X & (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (Nes (p => q)) => ((Nes p) => (Nes q)) in CnS4 X by Th84; :: thesis: ( (Nes p) => p in CnS4 X & (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (Nes p) => p in CnS4 X by Th85; :: thesis: ( (Nes p) => (Nes (Nes p)) in CnS4 X & ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus (Nes p) => (Nes (Nes p)) in CnS4 X by Th86; :: thesis: ( ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) & ( p in CnS4 X implies Nes p in CnS4 X ) )
thus ( p in CnS4 X & p => q in CnS4 X implies q in CnS4 X ) by Th83; :: thesis: ( p in CnS4 X implies Nes p in CnS4 X )
thus ( p in CnS4 X implies Nes p in CnS4 X ) by Th87; :: thesis: verum