bvfunc_1.miz
    
    begin
    
    definition
    
      let k,l be
    boolean  
    object;
    
      :: original:
    <=
    
      redefine
    
      :: 
    
    BVFUNC_1:def1
    
      pred k
    
    <= l means (k 
    => l) 
    =  
    TRUE ; 
    
      compatibility
    
      proof
    
        (l
    =  
    0 or l 
    = 1) & (k 
    =  
    0 or k 
    = 1) by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    begin
    
    reserve Y for non
    empty  
    set;
    
    reserve B for
    Subset of Y; 
    
    scheme :: 
    
    BVFUNC_1:sch1
    
    BVFUniq1 { Y() -> non
    empty  
    set , F( 
    set) ->
    set } : 
    
for f1,f2 be 
    Function of Y(), 
    BOOLEAN st (for x be 
    Element of Y() holds (f1 
    . x) 
    = F(x)) & (for x be 
    Element of Y() holds (f2 
    . x) 
    = F(x)) holds f1 
    = f2; 
    
      let f1,f2 be
    Function of Y(), 
    BOOLEAN ; 
    
      assume that
    
      
    
    A1: for x be 
    Element of Y() holds (f1 
    . x) 
    = F(x) and 
    
      
    
    A2: for x be 
    Element of Y() holds (f2 
    . x) 
    = F(x); 
    
      let u be
    Element of Y(); 
    
      
    
      thus (f2
    . u) 
    = F(u) by 
    A2
    
      .= (f1
    . u) by 
    A1;
    
    end;
    
    definition
    
      let Y;
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      :: original:
    'not'
    
      redefine
    
      func
    
    'not' a -> 
    Function of Y, 
    BOOLEAN ; 
    
      coherence
    
      proof
    
        reconsider a as
    Function of Y, 
    BOOLEAN ; 
    
        (
    'not' a) is 
    Function of Y, 
    BOOLEAN ; 
    
        hence thesis;
    
      end;
    
      let b be
    Function of Y, 
    BOOLEAN ; 
    
      :: original:
    '&'
    
      redefine
    
      func a
    
    '&' b -> 
    Function of Y, 
    BOOLEAN ; 
    
      coherence
    
      proof
    
        reconsider a, b as
    Function of Y, 
    BOOLEAN ; 
    
        (a
    '&' b) is 
    Function of Y, 
    BOOLEAN ; 
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let p,q be
    boolean-valued  
    Function;
    
      :: 
    
    BVFUNC_1:def2
    
      func p
    
    'or' q -> 
    boolean-valued  
    Function means 
    
      :
    
    Def2: ( 
    dom it ) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    object st x 
    in ( 
    dom it ) holds (it 
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)); 
    
      existence
    
      proof
    
        deffunc
    
    F(
    object) = ((p
    . $1) 
    'or' (q 
    . $1)); 
    
        consider s be
    Function such that 
    
        
    
    A1: ( 
    dom s) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    object st x 
    in (( 
    dom p) 
    /\ ( 
    dom q)) holds (s 
    . x) 
    =  
    F(x) from
    FUNCT_1:sch 3;
    
        s is
    boolean-valued
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    rng s); 
    
          then
    
          consider y be
    object such that 
    
          
    
    A2: y 
    in ( 
    dom s) & x 
    = (s 
    . y) by 
    FUNCT_1:def 3;
    
          x
    = ((p 
    . y) 
    'or' (q 
    . y)) by 
    A1,
    A2;
    
          then x
    =  
    FALSE or x 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
          hence thesis;
    
        end;
    
        hence thesis by
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        let s1,s2 be
    boolean-valued  
    Function such that 
    
        
    
    A3: ( 
    dom s1) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A4: for x be 
    object st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)) and 
    
        
    
    A5: ( 
    dom s2) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A6: for x be 
    object st x 
    in ( 
    dom s2) holds (s2 
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)); 
    
        for x be
    object st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = (s2 
    . x) 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A7: x 
    in ( 
    dom s1); 
    
          then (s1
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)) by 
    A4;
    
          hence thesis by
    A3,
    A5,
    A6,
    A7;
    
        end;
    
        hence thesis by
    A3,
    A5,
    FUNCT_1: 2;
    
      end;
    
      commutativity ;
    
      idempotence ;
    
      :: 
    
    BVFUNC_1:def3
    
      func p
    
    'xor' q -> 
    Function means 
    
      :
    
    Def3: ( 
    dom it ) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    set st x 
    in ( 
    dom it ) holds (it 
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)); 
    
      existence
    
      proof
    
        deffunc
    
    F(
    object) = ((p
    . $1) 
    'xor' (q 
    . $1)); 
    
        consider s be
    Function such that 
    
        
    
    A8: ( 
    dom s) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    object st x 
    in (( 
    dom p) 
    /\ ( 
    dom q)) holds (s 
    . x) 
    =  
    F(x) from
    FUNCT_1:sch 3;
    
        take s;
    
        thus thesis by
    A8;
    
      end;
    
      uniqueness
    
      proof
    
        let s1,s2 be
    Function such that 
    
        
    
    A9: ( 
    dom s1) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A10: for x be 
    set st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)) and 
    
        
    
    A11: ( 
    dom s2) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A12: for x be 
    set st x 
    in ( 
    dom s2) holds (s2 
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)); 
    
        for x be
    object st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = (s2 
    . x) 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A13: x 
    in ( 
    dom s1); 
    
          then (s1
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)) by 
    A10;
    
          hence thesis by
    A9,
    A11,
    A12,
    A13;
    
        end;
    
        hence thesis by
    A9,
    A11,
    FUNCT_1: 2;
    
      end;
    
      commutativity ;
    
    end
    
    registration
    
      let p,q be
    boolean-valued  
    Function;
    
      cluster (p 
    'xor' q) -> 
    boolean-valued;
    
      coherence
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    rng (p 
    'xor' q)); 
    
        then
    
        consider y be
    object such that 
    
        
    
    A1: y 
    in ( 
    dom (p 
    'xor' q)) & x 
    = ((p 
    'xor' q) 
    . y) by 
    FUNCT_1:def 3;
    
        x
    = ((p 
    . y) 
    'xor' (q 
    . y)) by 
    A1,
    Def3;
    
        then x
    =  
    FALSE or x 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let A be non
    empty  
    set;
    
      let p,q be
    Function of A, 
    BOOLEAN ; 
    
      :: original:
    'or'
    
      redefine
    
      :: 
    
    BVFUNC_1:def4
    
      func p
    
    'or' q -> 
    Function of A, 
    BOOLEAN means 
    
      :
    
    Def4: for x be 
    Element of A holds (it 
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)); 
    
      coherence
    
      proof
    
        (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    PARTFUN1:def 2;
    
        
    
        then
    
        
    
    A1: ( 
    dom (p 
    'or' q)) 
    = (A 
    /\ A) by 
    Def2
    
        .= A;
    
        (
    rng (p 
    'or' q)) 
    c=  
    BOOLEAN by 
    MARGREL1:def 16;
    
        hence thesis by
    A1,
    FUNCT_2: 2;
    
      end;
    
      compatibility
    
      proof
    
        let IT be
    Function of A, 
    BOOLEAN ; 
    
        
    
        
    
    A2: ( 
    dom IT) 
    = A by 
    FUNCT_2:def 1;
    
        hereby
    
          assume
    
          
    
    A3: IT 
    = (p 
    'or' q); 
    
          let x be
    Element of A; 
    
          (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
          
    
          then (
    dom (p 
    'or' q)) 
    = (A 
    /\ A) by 
    Def2
    
          .= A;
    
          hence (IT
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)) by 
    A3,
    Def2;
    
        end;
    
        
    
        
    
    A4: ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
        
    
        
    
    A5: ( 
    dom IT) 
    = (A 
    /\ A) by 
    FUNCT_2:def 1
    
        .= ((
    dom p) 
    /\ ( 
    dom q)) by 
    A4,
    FUNCT_2:def 1;
    
        assume for x be
    Element of A holds (IT 
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)); 
    
        then for x be
    object st x 
    in ( 
    dom IT) holds (IT 
    . x) 
    = ((p 
    . x) 
    'or' (q 
    . x)) by 
    A2;
    
        hence thesis by
    A5,
    Def2;
    
      end;
    
      :: original:
    'xor'
    
      redefine
    
      :: 
    
    BVFUNC_1:def5
    
      func p
    
    'xor' q -> 
    Function of A, 
    BOOLEAN means for x be 
    Element of A holds (it 
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)); 
    
      coherence
    
      proof
    
        (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    PARTFUN1:def 2;
    
        
    
        then
    
        
    
    A6: ( 
    dom (p 
    'xor' q)) 
    = (A 
    /\ A) by 
    Def3
    
        .= A;
    
        (
    rng (p 
    'xor' q)) 
    c=  
    BOOLEAN by 
    MARGREL1:def 16;
    
        hence thesis by
    A6,
    FUNCT_2: 2;
    
      end;
    
      compatibility
    
      proof
    
        let IT be
    Function of A, 
    BOOLEAN ; 
    
        
    
        
    
    A7: ( 
    dom IT) 
    = A by 
    FUNCT_2:def 1;
    
        hereby
    
          assume
    
          
    
    A8: IT 
    = (p 
    'xor' q); 
    
          let x be
    Element of A; 
    
          (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
          
    
          then (
    dom (p 
    'xor' q)) 
    = (A 
    /\ A) by 
    Def3
    
          .= A;
    
          hence (IT
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)) by 
    A8,
    Def3;
    
        end;
    
        
    
        
    
    A9: ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
        
    
        
    
    A10: ( 
    dom IT) 
    = (A 
    /\ A) by 
    FUNCT_2:def 1
    
        .= ((
    dom p) 
    /\ ( 
    dom q)) by 
    A9,
    FUNCT_2:def 1;
    
        assume for x be
    Element of A holds (IT 
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)); 
    
        then for x be
    set st x 
    in ( 
    dom IT) holds (IT 
    . x) 
    = ((p 
    . x) 
    'xor' (q 
    . x)) by 
    A7;
    
        hence thesis by
    A10,
    Def3;
    
      end;
    
    end
    
    definition
    
      let p,q be
    boolean-valued  
    Function;
    
      :: 
    
    BVFUNC_1:def6
    
      func p
    
    'imp' q -> 
    Function means 
    
      :
    
    Def6: ( 
    dom it ) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    set st x 
    in ( 
    dom it ) holds (it 
    . x) 
    = ((p 
    . x) 
    => (q 
    . x)); 
    
      existence
    
      proof
    
        deffunc
    
    F(
    object) = ((p
    . $1) 
    => (q 
    . $1)); 
    
        consider s be
    Function such that 
    
        
    
    A1: ( 
    dom s) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    object st x 
    in (( 
    dom p) 
    /\ ( 
    dom q)) holds (s 
    . x) 
    =  
    F(x) from
    FUNCT_1:sch 3;
    
        take s;
    
        thus thesis by
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        let s1,s2 be
    Function such that 
    
        
    
    A2: ( 
    dom s1) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A3: for x be 
    set st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = ((p 
    . x) 
    => (q 
    . x)) and 
    
        
    
    A4: ( 
    dom s2) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A5: for x be 
    set st x 
    in ( 
    dom s2) holds (s2 
    . x) 
    = ((p 
    . x) 
    => (q 
    . x)); 
    
        for x be
    object st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = (s2 
    . x) 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A6: x 
    in ( 
    dom s1); 
    
          then (s1
    . x) 
    = ((p 
    . x) 
    => (q 
    . x)) by 
    A3;
    
          hence thesis by
    A2,
    A4,
    A5,
    A6;
    
        end;
    
        hence thesis by
    A2,
    A4,
    FUNCT_1: 2;
    
      end;
    
      :: 
    
    BVFUNC_1:def7
    
      func p
    
    'eqv' q -> 
    Function means 
    
      :
    
    Def7: ( 
    dom it ) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    set st x 
    in ( 
    dom it ) holds (it 
    . x) 
    = ((p 
    . x) 
    <=> (q 
    . x)); 
    
      existence
    
      proof
    
        deffunc
    
    F(
    object) = ((p
    . $1) 
    <=> (q 
    . $1)); 
    
        consider s be
    Function such that 
    
        
    
    A7: ( 
    dom s) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) & for x be 
    object st x 
    in (( 
    dom p) 
    /\ ( 
    dom q)) holds (s 
    . x) 
    =  
    F(x) from
    FUNCT_1:sch 3;
    
        take s;
    
        thus thesis by
    A7;
    
      end;
    
      uniqueness
    
      proof
    
        let s1,s2 be
    Function such that 
    
        
    
    A8: ( 
    dom s1) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A9: for x be 
    set st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = ((p 
    . x) 
    <=> (q 
    . x)) and 
    
        
    
    A10: ( 
    dom s2) 
    = (( 
    dom p) 
    /\ ( 
    dom q)) and 
    
        
    
    A11: for x be 
    set st x 
    in ( 
    dom s2) holds (s2 
    . x) 
    = ((p 
    . x) 
    <=> (q 
    . x)); 
    
        for x be
    object st x 
    in ( 
    dom s1) holds (s1 
    . x) 
    = (s2 
    . x) 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A12: x 
    in ( 
    dom s1); 
    
          then (s1
    . x) 
    = ((p 
    . x) 
    <=> (q 
    . x)) by 
    A9;
    
          hence thesis by
    A8,
    A10,
    A11,
    A12;
    
        end;
    
        hence thesis by
    A8,
    A10,
    FUNCT_1: 2;
    
      end;
    
      commutativity ;
    
    end
    
    registration
    
      let p,q be
    boolean-valued  
    Function;
    
      cluster (p 
    'imp' q) -> 
    boolean-valued;
    
      coherence
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    rng (p 
    'imp' q)); 
    
        then
    
        consider y be
    object such that 
    
        
    
    A1: y 
    in ( 
    dom (p 
    'imp' q)) & x 
    = ((p 
    'imp' q) 
    . y) by 
    FUNCT_1:def 3;
    
        x
    = ((p 
    . y) 
    => (q 
    . y)) by 
    A1,
    Def6
    
        .= ((
    'not' (p 
    . y)) 
    'or' (q 
    . y)); 
    
        then x
    =  
    FALSE or x 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
      cluster (p 
    'eqv' q) -> 
    boolean-valued;
    
      coherence
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    rng (p 
    'eqv' q)); 
    
        then
    
        consider y be
    object such that 
    
        
    
    A2: y 
    in ( 
    dom (p 
    'eqv' q)) & x 
    = ((p 
    'eqv' q) 
    . y) by 
    FUNCT_1:def 3;
    
        x
    = ( 
    'not' ((p 
    . y) 
    'xor' (q 
    . y))) by 
    A2,
    Def7;
    
        then x
    =  
    FALSE or x 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let A be non
    empty  
    set;
    
      let p,q be
    Function of A, 
    BOOLEAN ; 
    
      :: original:
    'imp'
    
      redefine
    
      :: 
    
    BVFUNC_1:def8
    
      func p
    
    'imp' q -> 
    Function of A, 
    BOOLEAN means 
    
      :
    
    Def8: for x be 
    Element of A holds (it 
    . x) 
    = (( 
    'not' (p 
    . x)) 
    'or' (q 
    . x)); 
    
      coherence
    
      proof
    
        (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    PARTFUN1:def 2;
    
        
    
        then
    
        
    
    A1: ( 
    dom (p 
    'imp' q)) 
    = (A 
    /\ A) by 
    Def6
    
        .= A;
    
        (
    rng (p 
    'imp' q)) 
    c=  
    BOOLEAN by 
    MARGREL1:def 16;
    
        hence thesis by
    A1,
    FUNCT_2: 2;
    
      end;
    
      compatibility
    
      proof
    
        let IT be
    Function of A, 
    BOOLEAN ; 
    
        
    
        
    
    A2: ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
        hereby
    
          assume
    
          
    
    A3: IT 
    = (p 
    'imp' q); 
    
          let x be
    Element of A; 
    
          (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
          
    
          then (
    dom (p 
    'imp' q)) 
    = (A 
    /\ A) by 
    Def6
    
          .= A;
    
          
    
          hence (IT
    . x) 
    = ((p 
    . x) 
    => (q 
    . x)) by 
    A3,
    Def6
    
          .= ((
    'not' (p 
    . x)) 
    'or' (q 
    . x)); 
    
        end;
    
        assume
    
        
    
    A4: for x be 
    Element of A holds (IT 
    . x) 
    = (( 
    'not' (p 
    . x)) 
    'or' (q 
    . x)); 
    
        
    
        
    
    A5: for x be 
    set st x 
    in ( 
    dom IT) holds (IT 
    . x) 
    = ((p 
    . x) 
    => (q 
    . x)) 
    
        proof
    
          let x be
    set;
    
          assume x
    in ( 
    dom IT); 
    
          then
    
          reconsider x as
    Element of A by 
    FUNCT_2:def 1;
    
          (IT
    . x) 
    = (( 
    'not' (p 
    . x)) 
    'or' (q 
    . x)) by 
    A4;
    
          hence thesis;
    
        end;
    
        (
    dom IT) 
    = (A 
    /\ A) by 
    FUNCT_2:def 1
    
        .= ((
    dom p) 
    /\ ( 
    dom q)) by 
    A2,
    FUNCT_2:def 1;
    
        hence thesis by
    A5,
    Def6;
    
      end;
    
      :: original:
    'eqv'
    
      redefine
    
      :: 
    
    BVFUNC_1:def9
    
      func p
    
    'eqv' q -> 
    Function of A, 
    BOOLEAN means 
    
      :
    
    Def9: for x be 
    Element of A holds (it 
    . x) 
    = ( 
    'not' ((p 
    . x) 
    'xor' (q 
    . x))); 
    
      coherence
    
      proof
    
        (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    PARTFUN1:def 2;
    
        
    
        then
    
        
    
    A6: ( 
    dom (p 
    'eqv' q)) 
    = (A 
    /\ A) by 
    Def7
    
        .= A;
    
        (
    rng (p 
    'eqv' q)) 
    c=  
    BOOLEAN by 
    MARGREL1:def 16;
    
        hence thesis by
    A6,
    FUNCT_2: 2;
    
      end;
    
      compatibility
    
      proof
    
        let IT be
    Function of A, 
    BOOLEAN ; 
    
        
    
        
    
    A7: ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
        hereby
    
          assume
    
          
    
    A8: IT 
    = (p 
    'eqv' q); 
    
          let x be
    Element of A; 
    
          (
    dom p) 
    = A & ( 
    dom q) 
    = A by 
    FUNCT_2:def 1;
    
          
    
          then (
    dom (p 
    'eqv' q)) 
    = (A 
    /\ A) by 
    Def7
    
          .= A;
    
          hence (IT
    . x) 
    = ( 
    'not' ((p 
    . x) 
    'xor' (q 
    . x))) by 
    A8,
    Def7;
    
        end;
    
        assume
    
        
    
    A9: for x be 
    Element of A holds (IT 
    . x) 
    = ( 
    'not' ((p 
    . x) 
    'xor' (q 
    . x))); 
    
        
    
        
    
    A10: for x be 
    set st x 
    in ( 
    dom IT) holds (IT 
    . x) 
    = ((p 
    . x) 
    <=> (q 
    . x)) 
    
        proof
    
          let x be
    set;
    
          assume x
    in ( 
    dom IT); 
    
          then
    
          reconsider x as
    Element of A by 
    FUNCT_2:def 1;
    
          (IT
    . x) 
    = ( 
    'not' ((p 
    . x) 
    'xor' (q 
    . x))) by 
    A9;
    
          hence thesis;
    
        end;
    
        (
    dom IT) 
    = (A 
    /\ A) by 
    FUNCT_2:def 1
    
        .= ((
    dom p) 
    /\ ( 
    dom q)) by 
    A7,
    FUNCT_2:def 1;
    
        hence thesis by
    A10,
    Def7;
    
      end;
    
    end
    
    definition
    
      let Y;
    
      :: 
    
    BVFUNC_1:def10
    
      func
    
    O_el (Y) -> 
    Function of Y, 
    BOOLEAN means 
    
      :
    
    Def10: for x be 
    Element of Y holds (it 
    . x) 
    =  
    FALSE ; 
    
      existence
    
      proof
    
        reconsider f = (Y
    -->  
    FALSE ) as 
    Function of Y, 
    BOOLEAN ; 
    
        reconsider f as
    Function of Y, 
    BOOLEAN ; 
    
        take f;
    
        let x be
    Element of Y; 
    
        thus thesis;
    
      end;
    
      uniqueness
    
      proof
    
        deffunc
    
    F(
    set) =
    FALSE ; 
    
        thus for f1,f2 be
    Function of Y, 
    BOOLEAN st (for x be 
    Element of Y holds (f1 
    . x) 
    =  
    F(x)) & (for x be
    Element of Y holds (f2 
    . x) 
    =  
    F(x)) holds f1
    = f2 from 
    BVFUniq1;
    
      end;
    
    end
    
    definition
    
      let Y;
    
      :: 
    
    BVFUNC_1:def11
    
      func
    
    I_el (Y) -> 
    Function of Y, 
    BOOLEAN means 
    
      :
    
    Def11: for x be 
    Element of Y holds (it 
    . x) 
    =  
    TRUE ; 
    
      existence
    
      proof
    
        reconsider f = (Y
    -->  
    TRUE ) as 
    Function of Y, 
    BOOLEAN ; 
    
        reconsider f as
    Function of Y, 
    BOOLEAN ; 
    
        take f;
    
        let x be
    Element of Y; 
    
        thus thesis;
    
      end;
    
      uniqueness
    
      proof
    
        deffunc
    
    F(
    set) =
    TRUE ; 
    
        thus for f1,f2 be
    Function of Y, 
    BOOLEAN st (for x be 
    Element of Y holds (f1 
    . x) 
    =  
    F(x)) & (for x be
    Element of Y holds (f2 
    . x) 
    =  
    F(x)) holds f1
    = f2 from 
    BVFUniq1;
    
      end;
    
    end
    
    ::$Canceled
    
    theorem :: 
    
    BVFUNC_1:2
    
    
    
    
    
    Th1: ( 
    'not' ( 
    I_el Y)) 
    = ( 
    O_el Y) & ( 
    'not' ( 
    O_el Y)) 
    = ( 
    I_el Y) 
    
    proof
    
      
    
      
    
    A1: for x be 
    Element of Y holds (( 
    'not' ( 
    O_el Y)) 
    . x) 
    =  
    TRUE  
    
      proof
    
        let x be
    Element of Y; 
    
        ((
    'not' ( 
    O_el Y)) 
    . x) 
    = ( 
    'not' (( 
    O_el Y) 
    . x)) & (( 
    O_el Y) 
    . x) 
    =  
    FALSE by 
    Def10,
    MARGREL1:def 19;
    
        hence thesis;
    
      end;
    
      for x be
    Element of Y holds (( 
    'not' ( 
    I_el Y)) 
    . x) 
    =  
    FALSE  
    
      proof
    
        let x be
    Element of Y; 
    
        ((
    'not' ( 
    I_el Y)) 
    . x) 
    = ( 
    'not' (( 
    I_el Y) 
    . x)) & (( 
    I_el Y) 
    . x) 
    =  
    TRUE by 
    Def11,
    MARGREL1:def 19;
    
        hence thesis;
    
      end;
    
      hence thesis by
    A1,
    Def10,
    Def11;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:3
    
    for a,b be
    Function of Y, 
    BOOLEAN holds (a 
    '&' a) 
    = a; 
    
    theorem :: 
    
    BVFUNC_1:4
    
    for a,b,c be
    Function of Y, 
    BOOLEAN holds ((a 
    '&' b) 
    '&' c) 
    = (a 
    '&' (b 
    '&' c)) 
    
    proof
    
      let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus (((a
    '&' b) 
    '&' c) 
    . x) 
    = (((a 
    '&' b) 
    . x) 
    '&' (c 
    . x)) by 
    MARGREL1:def 20
    
      .= (((a
    . x) 
    '&' (b 
    . x)) 
    '&' (c 
    . x)) by 
    MARGREL1:def 20
    
      .= ((a
    . x) 
    '&' ((b 
    . x) 
    '&' (c 
    . x))) 
    
      .= ((a
    . x) 
    '&' ((b 
    '&' c) 
    . x)) by 
    MARGREL1:def 20
    
      .= ((a
    '&' (b 
    '&' c)) 
    . x) by 
    MARGREL1:def 20;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:5
    
    
    
    
    
    Th4: for a be 
    Function of Y, 
    BOOLEAN holds (a 
    '&' ( 
    O_el Y)) 
    = ( 
    O_el Y) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus ((a
    '&' ( 
    O_el Y)) 
    . x) 
    = ((a 
    . x) 
    '&' (( 
    O_el Y) 
    . x)) by 
    MARGREL1:def 20
    
      .= ((a
    . x) 
    '&'  
    FALSE ) by 
    Def10
    
      .= ((
    O_el Y) 
    . x) by 
    Def10;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:6
    
    
    
    
    
    Th5: for a be 
    Function of Y, 
    BOOLEAN holds (a 
    '&' ( 
    I_el Y)) 
    = a 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus ((a
    '&' ( 
    I_el Y)) 
    . x) 
    = ((a 
    . x) 
    '&' (( 
    I_el Y) 
    . x)) by 
    MARGREL1:def 20
    
      .= ((a
    . x) 
    '&'  
    TRUE ) by 
    Def11
    
      .= (a
    . x); 
    
    end;
    
    theorem :: 
    
    BVFUNC_1:7
    
    for a be
    Function of Y, 
    BOOLEAN holds (a 
    'or' a) 
    = a; 
    
    theorem :: 
    
    BVFUNC_1:8
    
    for a,b,c be
    Function of Y, 
    BOOLEAN holds ((a 
    'or' b) 
    'or' c) 
    = (a 
    'or' (b 
    'or' c)) 
    
    proof
    
      let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus (((a
    'or' b) 
    'or' c) 
    . x) 
    = (((a 
    'or' b) 
    . x) 
    'or' (c 
    . x)) by 
    Def4
    
      .= (((a
    . x) 
    'or' (b 
    . x)) 
    'or' (c 
    . x)) by 
    Def4
    
      .= ((a
    . x) 
    'or' ((b 
    . x) 
    'or' (c 
    . x))) 
    
      .= ((a
    . x) 
    'or' ((b 
    'or' c) 
    . x)) by 
    Def4
    
      .= ((a
    'or' (b 
    'or' c)) 
    . x) by 
    Def4;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:9
    
    
    
    
    
    Th8: for a be 
    Function of Y, 
    BOOLEAN holds (a 
    'or' ( 
    O_el Y)) 
    = a 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus ((a
    'or' ( 
    O_el Y)) 
    . x) 
    = ((a 
    . x) 
    'or' (( 
    O_el Y) 
    . x)) by 
    Def4
    
      .= ((a
    . x) 
    'or'  
    FALSE ) by 
    Def10
    
      .= (a
    . x); 
    
    end;
    
    theorem :: 
    
    BVFUNC_1:10
    
    
    
    
    
    Th9: for a be 
    Function of Y, 
    BOOLEAN holds (a 
    'or' ( 
    I_el Y)) 
    = ( 
    I_el Y) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus ((a
    'or' ( 
    I_el Y)) 
    . x) 
    = ((a 
    . x) 
    'or' (( 
    I_el Y) 
    . x)) by 
    Def4
    
      .= ((a
    . x) 
    'or'  
    TRUE ) by 
    Def11
    
      .= ((
    I_el Y) 
    . x) by 
    Def11;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:11
    
    for a,b,c be
    Function of Y, 
    BOOLEAN holds ((a 
    '&' b) 
    'or' c) 
    = ((a 
    'or' c) 
    '&' (b 
    'or' c)) 
    
    proof
    
      let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus (((a
    '&' b) 
    'or' c) 
    . x) 
    = (((a 
    '&' b) 
    . x) 
    'or' (c 
    . x)) by 
    Def4
    
      .= (((a
    . x) 
    '&' (b 
    . x)) 
    'or' (c 
    . x)) by 
    MARGREL1:def 20
    
      .= (((a
    . x) 
    'or' (c 
    . x)) 
    '&' ((b 
    . x) 
    'or' (c 
    . x))) by 
    XBOOLEAN: 9
    
      .= (((a
    . x) 
    'or' (c 
    . x)) 
    '&' ((b 
    'or' c) 
    . x)) by 
    Def4
    
      .= (((a
    'or' c) 
    . x) 
    '&' ((b 
    'or' c) 
    . x)) by 
    Def4
    
      .= (((a
    'or' c) 
    '&' (b 
    'or' c)) 
    . x) by 
    MARGREL1:def 20;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:12
    
    for a,b,c be
    Function of Y, 
    BOOLEAN holds ((a 
    'or' b) 
    '&' c) 
    = ((a 
    '&' c) 
    'or' (b 
    '&' c)) 
    
    proof
    
      let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus (((a
    'or' b) 
    '&' c) 
    . x) 
    = (((a 
    'or' b) 
    . x) 
    '&' (c 
    . x)) by 
    MARGREL1:def 20
    
      .= (((a
    . x) 
    'or' (b 
    . x)) 
    '&' (c 
    . x)) by 
    Def4
    
      .= (((a
    . x) 
    '&' (c 
    . x)) 
    'or' ((b 
    . x) 
    '&' (c 
    . x))) by 
    XBOOLEAN: 8
    
      .= (((a
    . x) 
    '&' (c 
    . x)) 
    'or' ((b 
    '&' c) 
    . x)) by 
    MARGREL1:def 20
    
      .= (((a
    '&' c) 
    . x) 
    'or' ((b 
    '&' c) 
    . x)) by 
    MARGREL1:def 20
    
      .= (((a
    '&' c) 
    'or' (b 
    '&' c)) 
    . x) by 
    Def4;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:13
    
    for a,b be
    Function of Y, 
    BOOLEAN holds ( 
    'not' (a 
    'or' b)) 
    = (( 
    'not' a) 
    '&' ( 
    'not' b)) 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus ((
    'not' (a 
    'or' b)) 
    . x) 
    = ( 
    'not' ((a 
    'or' b) 
    . x)) by 
    MARGREL1:def 19
    
      .= (
    'not' ((a 
    . x) 
    'or' (b 
    . x))) by 
    Def4
    
      .= (((
    'not' a) 
    . x) 
    '&' ( 
    'not' (b 
    . x))) by 
    MARGREL1:def 19
    
      .= (((
    'not' a) 
    . x) 
    '&' (( 
    'not' b) 
    . x)) by 
    MARGREL1:def 19
    
      .= (((
    'not' a) 
    '&' ( 
    'not' b)) 
    . x) by 
    MARGREL1:def 20;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:14
    
    for a,b be
    Function of Y, 
    BOOLEAN holds ( 
    'not' (a 
    '&' b)) 
    = (( 
    'not' a) 
    'or' ( 
    'not' b)) 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
      thus ((
    'not' (a 
    '&' b)) 
    . x) 
    = ( 
    'not' ((a 
    '&' b) 
    . x)) by 
    MARGREL1:def 19
    
      .= ((
    'not' (a 
    . x)) 
    'or' ( 
    'not' (b 
    . x))) by 
    MARGREL1:def 20
    
      .= ((
    'not' (a 
    . x)) 
    'or' (( 
    'not' b) 
    . x)) by 
    MARGREL1:def 19
    
      .= (((
    'not' a) 
    . x) 
    'or' (( 
    'not' b) 
    . x)) by 
    MARGREL1:def 19
    
      .= (((
    'not' a) 
    'or' ( 
    'not' b)) 
    . x) by 
    Def4;
    
    end;
    
    definition
    
      let Y;
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      :: 
    
    BVFUNC_1:def12
    
      pred a
    
    '<' b means for x be 
    Element of Y st (a 
    . x) 
    =  
    TRUE holds (b 
    . x) 
    =  
    TRUE ; 
    
      reflexivity ;
    
    end
    
    theorem :: 
    
    BVFUNC_1:15
    
    for a,b,c be
    Function of Y, 
    BOOLEAN holds (a 
    '<' b & b 
    '<' a implies a 
    = b) & (a 
    '<' b & b 
    '<' c implies a 
    '<' c) 
    
    proof
    
      let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: for a,b,c be 
    Function of Y, 
    BOOLEAN holds a 
    '<' b & b 
    '<' a implies a 
    = b 
    
      proof
    
        let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
        assume
    
        
    
    A2: a 
    '<' b & b 
    '<' a; 
    
        let x be
    Element of Y; 
    
        (a
    . x) 
    =  
    FALSE & (b 
    . x) 
    =  
    FALSE or (a 
    . x) 
    =  
    FALSE & (b 
    . x) 
    =  
    TRUE or (a 
    . x) 
    =  
    TRUE & (b 
    . x) 
    =  
    FALSE or (a 
    . x) 
    =  
    TRUE & (b 
    . x) 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis by
    A2;
    
      end;
    
      for a,b,c be
    Function of Y, 
    BOOLEAN holds a 
    '<' b & b 
    '<' c implies a 
    '<' c 
    
      proof
    
        let a,b,c be
    Function of Y, 
    BOOLEAN ; 
    
        assume that
    
        
    
    A3: a 
    '<' b and 
    
        
    
    A4: b 
    '<' c; 
    
        for x be
    Element of Y st (a 
    . x) 
    =  
    TRUE holds (c 
    . x) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          (b
    . x) 
    =  
    TRUE implies (c 
    . x) 
    =  
    TRUE by 
    A4;
    
          hence thesis by
    A3;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:16
    
    
    
    
    
    Th15: for a,b be 
    Function of Y, 
    BOOLEAN holds (a 
    'imp' b) 
    = ( 
    I_el Y) iff a 
    '<' b 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: for a,b be 
    Function of Y, 
    BOOLEAN holds a 
    '<' b implies (a 
    'imp' b) 
    = ( 
    I_el Y) 
    
      proof
    
        let a,b be
    Function of Y, 
    BOOLEAN ; 
    
        assume
    
        
    
    A2: a 
    '<' b; 
    
        
    
        
    
    A3: for x be 
    Element of Y holds (( 
    'not' (a 
    . x)) 
    'or' (b 
    . x)) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          (a
    . x) 
    =  
    FALSE & (b 
    . x) 
    =  
    FALSE or (a 
    . x) 
    =  
    FALSE & (b 
    . x) 
    =  
    TRUE or (a 
    . x) 
    =  
    TRUE & (b 
    . x) 
    =  
    TRUE by 
    A2,
    XBOOLEAN:def 3;
    
          hence thesis;
    
        end;
    
        let x be
    Element of Y; 
    
        ((a
    'imp' b) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (b 
    . x)) & (( 
    I_el Y) 
    . x) 
    =  
    TRUE by 
    Def8,
    Def11;
    
        hence thesis by
    A3;
    
      end;
    
      for a,b be
    Function of Y, 
    BOOLEAN holds (a 
    'imp' b) 
    = ( 
    I_el Y) implies a 
    '<' b 
    
      proof
    
        let a,b be
    Function of Y, 
    BOOLEAN ; 
    
        assume
    
        
    
    A4: (a 
    'imp' b) 
    = ( 
    I_el Y); 
    
        
    
        
    
    A5: for x be 
    Element of Y holds (( 
    'not' (a 
    . x)) 
    'or' (b 
    . x)) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          ((a
    'imp' b) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (b 
    . x)) by 
    Def8;
    
          hence thesis by
    A4,
    Def11;
    
        end;
    
        for x be
    Element of Y holds (a 
    . x) 
    =  
    FALSE & (b 
    . x) 
    =  
    FALSE or (a 
    . x) 
    =  
    FALSE & (b 
    . x) 
    =  
    TRUE or (a 
    . x) 
    =  
    TRUE & (b 
    . x) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          
    
          
    
    A6: ( 
    'not' (a 
    . x)) 
    =  
    TRUE & (b 
    . x) 
    =  
    FALSE or ( 
    'not' (a 
    . x)) 
    =  
    TRUE & (b 
    . x) 
    =  
    TRUE or ( 
    'not' (a 
    . x)) 
    =  
    FALSE & (b 
    . x) 
    =  
    FALSE or ( 
    'not' (a 
    . x)) 
    =  
    FALSE & (b 
    . x) 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
          ((
    'not' (a 
    . x)) 
    'or' (b 
    . x)) 
    =  
    TRUE by 
    A5;
    
          hence thesis by
    A6;
    
        end;
    
        then for x be
    Element of Y st (a 
    . x) 
    =  
    TRUE holds (b 
    . x) 
    =  
    TRUE ; 
    
        hence thesis;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:17
    
    for a,b be
    Function of Y, 
    BOOLEAN holds (a 
    'eqv' b) 
    = ( 
    I_el Y) iff a 
    = b 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: for a,b be 
    Function of Y, 
    BOOLEAN holds (a 
    'eqv' b) 
    = ( 
    I_el Y) implies a 
    = b 
    
      proof
    
        let a,b be
    Function of Y, 
    BOOLEAN ; 
    
        assume
    
        
    
    A2: (a 
    'eqv' b) 
    = ( 
    I_el Y); 
    
        
    
        
    
    A3: for x be 
    Element of Y holds ((( 
    'not' (a 
    . x)) 
    '&' (b 
    . x)) 
    'or' ((a 
    . x) 
    '&' ( 
    'not' (b 
    . x)))) 
    =  
    FALSE  
    
        proof
    
          let x be
    Element of Y; 
    
          ((a
    'eqv' b) 
    . x) 
    = ( 
    'not' ((a 
    . x) 
    'xor' (b 
    . x))) by 
    Def9;
    
          then (
    'not' ((a 
    . x) 
    'xor' (b 
    . x))) 
    =  
    TRUE by 
    A2,
    Def11;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A4: for x be 
    Element of Y holds (( 
    'not' (a 
    . x)) 
    '&' (b 
    . x)) 
    =  
    FALSE & ((a 
    . x) 
    '&' ( 
    'not' (b 
    . x))) 
    =  
    FALSE  
    
        proof
    
          let x be
    Element of Y; 
    
          
    
          
    
    A5: ((a 
    . x) 
    '&' ( 
    'not' (b 
    . x))) 
    =  
    TRUE or ((a 
    . x) 
    '&' ( 
    'not' (b 
    . x))) 
    =  
    FALSE by 
    XBOOLEAN:def 3;
    
          (((
    'not' (a 
    . x)) 
    '&' (b 
    . x)) 
    'or' ((a 
    . x) 
    '&' ( 
    'not' (b 
    . x)))) 
    =  
    FALSE by 
    A3;
    
          hence thesis by
    A5;
    
        end;
    
        let x be
    Element of Y; 
    
        ((
    'not' (a 
    . x)) 
    '&' (b 
    . x)) 
    =  
    FALSE by 
    A4;
    
        then
    
        
    
    A6: ( 
    'not' (a 
    . x)) 
    =  
    TRUE & (b 
    . x) 
    =  
    FALSE or ( 
    'not' (a 
    . x)) 
    =  
    FALSE & (b 
    . x) 
    =  
    FALSE or ( 
    'not' (a 
    . x)) 
    =  
    FALSE & (b 
    . x) 
    =  
    TRUE by 
    MARGREL1: 12,
    XBOOLEAN:def 3;
    
        ((a
    . x) 
    '&' ( 
    'not' (b 
    . x))) 
    =  
    FALSE by 
    A4;
    
        hence thesis by
    A6;
    
      end;
    
      for a,b be
    Function of Y, 
    BOOLEAN holds a 
    = b implies (a 
    'eqv' b) 
    = ( 
    I_el Y) 
    
      proof
    
        let a,b be
    Function of Y, 
    BOOLEAN ; 
    
        assume
    
        
    
    A7: a 
    = b; 
    
        
    
        
    
    A8: for x be 
    Element of Y holds (( 
    'not' (a 
    . x)) 
    '&' (b 
    . x)) 
    =  
    FALSE & ((a 
    . x) 
    '&' ( 
    'not' (b 
    . x))) 
    =  
    FALSE  
    
        proof
    
          let x be
    Element of Y; 
    
          (b
    . x) 
    =  
    TRUE iff ( 
    'not' (b 
    . x)) 
    =  
    FALSE ; 
    
          then (a
    . x) 
    =  
    FALSE & ( 
    'not' (b 
    . x)) 
    =  
    TRUE or (a 
    . x) 
    =  
    TRUE & ( 
    'not' (b 
    . x)) 
    =  
    FALSE by 
    A7,
    XBOOLEAN:def 3;
    
          hence thesis;
    
        end;
    
        let x be
    Element of Y; 
    
        ((a
    . x) 
    '&' ( 
    'not' (b 
    . x))) 
    =  
    FALSE by 
    A8;
    
        then (
    'not' ((a 
    . x) 
    'xor' (b 
    . x))) 
    =  
    TRUE by 
    A8;
    
        then ((a
    'eqv' b) 
    . x) 
    =  
    TRUE by 
    Def9;
    
        hence thesis by
    Def11;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:18
    
    for a be
    Function of Y, 
    BOOLEAN holds ( 
    O_el Y) 
    '<' a & a 
    '<' ( 
    I_el Y) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: (( 
    O_el Y) 
    'imp' a) 
    = ( 
    I_el Y) 
    
      proof
    
        let x be
    Element of Y; 
    
        (((
    O_el Y) 
    'imp' a) 
    . x) 
    = (( 
    'not' (( 
    O_el Y) 
    . x)) 
    'or' (a 
    . x)) by 
    Def8;
    
        then (((
    O_el Y) 
    'imp' a) 
    . x) 
    = ( 
    TRUE  
    'or' (a 
    . x)) by 
    Def10;
    
        hence thesis by
    Def11;
    
      end;
    
      (a
    'imp' ( 
    I_el Y)) 
    = ( 
    I_el Y) 
    
      proof
    
        let x be
    Element of Y; 
    
        ((a
    'imp' ( 
    I_el Y)) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (( 
    I_el Y) 
    . x)) by 
    Def8;
    
        then ((a
    'imp' ( 
    I_el Y)) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or'  
    TRUE ) by 
    Def11;
    
        hence thesis by
    Def11;
    
      end;
    
      hence thesis by
    A1,
    Th15;
    
    end;
    
    begin
    
    definition
    
      let Y;
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      :: 
    
    BVFUNC_1:def13
    
      func
    
    B_INF (a) -> 
    Function of Y, 
    BOOLEAN equals 
    
      :
    
    Def13: ( 
    I_el Y) if for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE  
    
      otherwise (
    O_el Y); 
    
      correctness ;
    
      :: 
    
    BVFUNC_1:def14
    
      func
    
    B_SUP (a) -> 
    Function of Y, 
    BOOLEAN equals 
    
      :
    
    Def14: ( 
    O_el Y) if for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE  
    
      otherwise (
    I_el Y); 
    
      correctness ;
    
    end
    
    theorem :: 
    
    BVFUNC_1:19
    
    
    
    
    
    Th18: for a be 
    Function of Y, 
    BOOLEAN holds ( 
    'not' ( 
    B_INF a)) 
    = ( 
    B_SUP ( 
    'not' a)) & ( 
    'not' ( 
    B_SUP a)) 
    = ( 
    B_INF ( 
    'not' a)) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: (for x be 
    Element of Y holds (( 
    'not' a) 
    . x) 
    =  
    TRUE ) implies for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE  
    
      proof
    
        assume
    
        
    
    A2: for x be 
    Element of Y holds (( 
    'not' a) 
    . x) 
    =  
    TRUE ; 
    
        let x be
    Element of Y; 
    
        ((
    'not' a) 
    . x) 
    =  
    TRUE by 
    A2;
    
        then (
    'not' (a 
    . x)) 
    =  
    TRUE by 
    MARGREL1:def 19;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A3: (for x be 
    Element of Y holds (( 
    'not' a) 
    . x) 
    =  
    FALSE ) implies for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE  
    
      proof
    
        assume
    
        
    
    A4: for x be 
    Element of Y holds (( 
    'not' a) 
    . x) 
    =  
    FALSE ; 
    
        let x be
    Element of Y; 
    
        ((
    'not' a) 
    . x) 
    =  
    FALSE by 
    A4;
    
        then (
    'not' (a 
    . x)) 
    =  
    FALSE by 
    MARGREL1:def 19;
    
        hence thesis;
    
      end;
    
      
    
    A5: 
    
      now
    
        assume
    
        
    
    A6: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
        now
    
          per cases by
    A6;
    
            case
    
            
    
    A7: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
            
    
            
    
    A8: for x be 
    Element of Y holds (( 
    'not' a) 
    . x) 
    =  
    FALSE  
    
            proof
    
              let x be
    Element of Y; 
    
              (
    'not'  
    TRUE ) 
    =  
    FALSE ; 
    
              then (
    'not' (a 
    . x)) 
    =  
    FALSE by 
    A7;
    
              hence thesis by
    MARGREL1:def 19;
    
            end;
    
            (
    B_INF a) 
    = ( 
    I_el Y) by 
    A7,
    Def13;
    
            then
    
            
    
    A9: ( 
    'not' ( 
    B_INF a)) 
    = ( 
    O_el Y) by 
    Th1;
    
            (
    B_INF ( 
    'not' a)) 
    = ( 
    O_el Y) & ( 
    'not' ( 
    B_SUP a)) 
    = ( 
    'not' ( 
    I_el Y)) by 
    A1,
    A7,
    Def13,
    Def14;
    
            hence thesis by
    A9,
    A8,
    Def14,
    Th1;
    
          end;
    
            case
    
            
    
    A10: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ); 
    
            
    
            
    
    A11: for x be 
    Element of Y holds (( 
    'not' a) 
    . x) 
    =  
    TRUE  
    
            proof
    
              let x be
    Element of Y; 
    
              (
    'not'  
    FALSE ) 
    =  
    TRUE ; 
    
              then (
    'not' (a 
    . x)) 
    =  
    TRUE by 
    A10;
    
              hence thesis by
    MARGREL1:def 19;
    
            end;
    
            (
    'not' ( 
    B_SUP a)) 
    = ( 
    'not' ( 
    O_el Y)) by 
    A10,
    Def14;
    
            then
    
            
    
    A12: ( 
    'not' ( 
    B_SUP a)) 
    = ( 
    I_el Y) by 
    Th1;
    
            (
    B_SUP ( 
    'not' a)) 
    = ( 
    I_el Y) & ( 
    'not' ( 
    B_INF a)) 
    = ( 
    'not' ( 
    O_el Y)) by 
    A3,
    A10,
    Def13,
    Def14;
    
            hence thesis by
    A12,
    A11,
    Def13,
    Th1;
    
          end;
    
            case
    
            
    
    A13: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            (a
    . x) 
    =  
    TRUE by 
    A13;
    
            hence thesis by
    A13;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      now
    
        assume that
    
        
    
    A14: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A15: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
        (
    'not' ( 
    B_INF a)) 
    = ( 
    'not' ( 
    O_el Y)) by 
    A14,
    Def13;
    
        then
    
        
    
    A16: ( 
    'not' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    Th1;
    
        (
    'not' ( 
    B_SUP a)) 
    = ( 
    'not' ( 
    I_el Y)) & ( 
    B_INF ( 
    'not' a)) 
    = ( 
    O_el Y) by 
    A1,
    A15,
    Def13,
    Def14;
    
        hence thesis by
    A3,
    A14,
    A16,
    Def14,
    Th1;
    
      end;
    
      hence thesis by
    A5;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:20
    
    (
    B_INF ( 
    O_el Y)) 
    = ( 
    O_el Y) & ( 
    B_INF ( 
    I_el Y)) 
    = ( 
    I_el Y) & ( 
    B_SUP ( 
    O_el Y)) 
    = ( 
    O_el Y) & ( 
    B_SUP ( 
    I_el Y)) 
    = ( 
    I_el Y) 
    
    proof
    
      
    
      
    
    A1: not (for x be 
    Element of Y holds (( 
    O_el Y) 
    . x) 
    =  
    TRUE ) 
    
      proof
    
        now
    
          assume for x be
    Element of Y holds (( 
    O_el Y) 
    . x) 
    =  
    TRUE ; 
    
          let x be
    Element of Y; 
    
          ((
    O_el Y) 
    . x) 
    =  
    FALSE by 
    Def10;
    
          hence thesis;
    
        end;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A2: not (for x be 
    Element of Y holds (( 
    I_el Y) 
    . x) 
    =  
    FALSE ) 
    
      proof
    
        now
    
          assume
    
          
    
    A3: for x be 
    Element of Y holds (( 
    I_el Y) 
    . x) 
    =  
    FALSE ; 
    
          let x be
    Element of Y; 
    
          ((
    I_el Y) 
    . x) 
    =  
    FALSE by 
    A3;
    
          hence thesis by
    Def11;
    
        end;
    
        hence thesis;
    
      end;
    
      (for x be
    Element of Y holds (( 
    O_el Y) 
    . x) 
    =  
    FALSE ) & for x be 
    Element of Y holds (( 
    I_el Y) 
    . x) 
    =  
    TRUE by 
    Def10,
    Def11;
    
      hence thesis by
    A1,
    A2,
    Def13,
    Def14;
    
    end;
    
    registration
    
      let Y;
    
      cluster ( 
    O_el Y) -> 
    constant;
    
      coherence
    
      proof
    
        for n1,n2 be
    object st n1 
    in ( 
    dom ( 
    O_el Y)) & n2 
    in ( 
    dom ( 
    O_el Y)) holds (( 
    O_el Y) 
    . n1) 
    = (( 
    O_el Y) 
    . n2) 
    
        proof
    
          let n1,n2 be
    object;
    
          assume n1
    in ( 
    dom ( 
    O_el Y)) & n2 
    in ( 
    dom ( 
    O_el Y)); 
    
          then
    
          reconsider n1, n2 as
    Element of Y by 
    PARTFUN1:def 2;
    
          ((
    O_el Y) 
    . n2) 
    =  
    FALSE & (( 
    O_el Y) 
    . n1) 
    = (( 
    O_el Y) 
    . n1) by 
    Def10;
    
          hence thesis by
    Def10;
    
        end;
    
        hence thesis by
    FUNCT_1:def 10;
    
      end;
    
    end
    
    registration
    
      let Y;
    
      cluster ( 
    I_el Y) -> 
    constant;
    
      coherence
    
      proof
    
        thus (
    I_el Y) is 
    constant
    
        proof
    
          for n1,n2 be
    object st n1 
    in ( 
    dom ( 
    I_el Y)) & n2 
    in ( 
    dom ( 
    I_el Y)) holds (( 
    I_el Y) 
    . n1) 
    = (( 
    I_el Y) 
    . n2) 
    
          proof
    
            let n1,n2 be
    object;
    
            assume n1
    in ( 
    dom ( 
    I_el Y)) & n2 
    in ( 
    dom ( 
    I_el Y)); 
    
            then
    
            reconsider n1, n2 as
    Element of Y by 
    PARTFUN1:def 2;
    
            ((
    I_el Y) 
    . n2) 
    =  
    TRUE & (( 
    I_el Y) 
    . n1) 
    = (( 
    I_el Y) 
    . n1) by 
    Def11;
    
            hence thesis by
    Def11;
    
          end;
    
          hence thesis by
    FUNCT_1:def 10;
    
        end;
    
      end;
    
    end
    
    theorem :: 
    
    BVFUNC_1:21
    
    
    
    
    
    Th20: for a be 
    constant  
    Function of Y, 
    BOOLEAN holds a 
    = ( 
    O_el Y) or a 
    = ( 
    I_el Y) 
    
    proof
    
      let a be
    constant  
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: (for n1,n2 be 
    set st n1 
    in Y & n2 
    in Y holds (a 
    . n1) 
    = (a 
    . n2)) implies (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE  
    
      proof
    
        assume
    
        
    
    A2: for n1,n2 be 
    set st n1 
    in Y & n2 
    in Y holds (a 
    . n1) 
    = (a 
    . n2); 
    
        now
    
          assume that
    
          
    
    A3: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) and 
    
          
    
    A4: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
          consider x1 be
    Element of Y such that 
    
          
    
    A5: (a 
    . x1) 
    <>  
    TRUE by 
    A3;
    
          (a
    . x1) 
    =  
    FALSE by 
    A5,
    XBOOLEAN:def 3;
    
          hence contradiction by
    A2,
    A4;
    
        end;
    
        hence thesis;
    
      end;
    
      (
    dom a) 
    = Y by 
    PARTFUN1:def 2;
    
      hence thesis by
    A1,
    Def10,
    Def11,
    FUNCT_1:def 10;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:22
    
    
    
    
    
    Th21: for d be 
    constant  
    Function of Y, 
    BOOLEAN holds ( 
    B_INF d) 
    = d & ( 
    B_SUP d) 
    = d 
    
    proof
    
      let d be
    constant  
    Function of Y, 
    BOOLEAN ; 
    
      
    
    A1: 
    
      now
    
        assume
    
        
    
    A2: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ; 
    
        now
    
          per cases by
    A2;
    
            case
    
            
    
    A3: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ); 
    
            then d
    = ( 
    I_el Y) by 
    Def11;
    
            hence thesis by
    A3,
    Def13,
    Def14;
    
          end;
    
            case
    
            
    
    A4: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ); 
    
            then d
    = ( 
    O_el Y) by 
    Def10;
    
            hence thesis by
    A4,
    Def13,
    Def14;
    
          end;
    
            case
    
            
    
    A5: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) & for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            (d
    . x) 
    =  
    TRUE by 
    A5;
    
            hence thesis by
    A5;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      now
    
        assume that
    
        
    
    A6: not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A7: not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ); 
    
        now
    
          per cases by
    Th20;
    
            case d
    = ( 
    O_el Y); 
    
            hence thesis by
    A7,
    Def10;
    
          end;
    
            case d
    = ( 
    I_el Y); 
    
            hence thesis by
    A6,
    Def11;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:23
    
    for a,b be
    Function of Y, 
    BOOLEAN holds ( 
    B_INF (a 
    '&' b)) 
    = (( 
    B_INF a) 
    '&' ( 
    B_INF b)) & ( 
    B_SUP (a 
    'or' b)) 
    = (( 
    B_SUP a) 
    'or' ( 
    B_SUP b)) 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      
    
    A1: 
    
      now
    
        assume
    
        
    
    A2: for x be 
    Element of Y holds ((a 
    '&' b) 
    . x) 
    =  
    TRUE ; 
    
        
    
        
    
    A3: for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          ((a
    '&' b) 
    . x) 
    = ((a 
    . x) 
    '&' (b 
    . x)) by 
    MARGREL1:def 20;
    
          then ((a
    . x) 
    '&' (b 
    . x)) 
    =  
    TRUE by 
    A2;
    
          hence thesis by
    XBOOLEAN: 101;
    
        end;
    
         not (for x be
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) 
    
        proof
    
          now
    
            assume for x be
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            (a
    . x) 
    =  
    TRUE by 
    A3;
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        then
    
        
    
    A4: ( 
    B_SUP a) 
    = ( 
    I_el Y) by 
    Def14;
    
        
    
        
    
    A5: for x be 
    Element of Y holds (b 
    . x) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          ((a
    '&' b) 
    . x) 
    =  
    TRUE by 
    A2;
    
          then ((a
    . x) 
    '&' (b 
    . x)) 
    =  
    TRUE by 
    MARGREL1:def 20;
    
          hence thesis by
    XBOOLEAN: 101;
    
        end;
    
         not (for x be
    Element of Y holds (b 
    . x) 
    =  
    FALSE ) 
    
        proof
    
          now
    
            assume for x be
    Element of Y holds (b 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            (b
    . x) 
    =  
    TRUE by 
    A5;
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        then
    
        
    
    A6: (( 
    B_SUP a) 
    'or' ( 
    B_SUP b)) 
    = (( 
    I_el Y) 
    'or' ( 
    I_el Y)) by 
    A4,
    Def14;
    
        
    
        
    
    A7: not (for x be 
    Element of Y holds ((a 
    'or' b) 
    . x) 
    =  
    FALSE ) 
    
        proof
    
          now
    
            assume for x be
    Element of Y holds ((a 
    'or' b) 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            ((a
    'or' b) 
    . x) 
    = ((a 
    . x) 
    'or' (b 
    . x)) & (a 
    . x) 
    =  
    TRUE by 
    A3,
    Def4;
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        ((
    B_INF a) 
    '&' ( 
    B_INF b)) 
    = (( 
    B_INF a) 
    '&' ( 
    I_el Y)) by 
    A5,
    Def13
    
        .= ((
    I_el Y) 
    '&' ( 
    I_el Y)) by 
    A3,
    Def13;
    
        hence thesis by
    A2,
    A7,
    A6,
    Def13,
    Def14;
    
      end;
    
      
    
    A8: 
    
      now
    
        assume
    
        
    
    A9: for x be 
    Element of Y holds ((a 
    'or' b) 
    . x) 
    =  
    FALSE ; 
    
        
    
        
    
    A10: for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE  
    
        proof
    
          let x be
    Element of Y; 
    
          ((a
    'or' b) 
    . x) 
    =  
    FALSE by 
    A9;
    
          then
    
          
    
    A11: ((a 
    . x) 
    'or' (b 
    . x)) 
    =  
    FALSE by 
    Def4;
    
          (a
    . x) 
    =  
    TRUE or (a 
    . x) 
    =  
    FALSE by 
    XBOOLEAN:def 3;
    
          hence thesis by
    A11;
    
        end;
    
        
    
        
    
    A12: not (for x be 
    Element of Y holds ((a 
    '&' b) 
    . x) 
    =  
    TRUE ) 
    
        proof
    
          now
    
            assume for x be
    Element of Y holds ((a 
    '&' b) 
    . x) 
    =  
    TRUE ; 
    
            let x be
    Element of Y; 
    
            ((a
    '&' b) 
    . x) 
    = ((a 
    . x) 
    '&' (b 
    . x)) & (a 
    . x) 
    =  
    FALSE by 
    A10,
    MARGREL1:def 20;
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        
    
        
    
    A13: for x be 
    Element of Y holds (b 
    . x) 
    =  
    FALSE  
    
        proof
    
          let x be
    Element of Y; 
    
          ((a
    'or' b) 
    . x) 
    =  
    FALSE by 
    A9;
    
          then
    
          
    
    A14: ((a 
    . x) 
    'or' (b 
    . x)) 
    =  
    FALSE by 
    Def4;
    
          (b
    . x) 
    =  
    TRUE or (b 
    . x) 
    =  
    FALSE by 
    XBOOLEAN:def 3;
    
          hence thesis by
    A14;
    
        end;
    
        then (
    B_SUP b) 
    = ( 
    O_el Y) by 
    Def14;
    
        then
    
        
    
    A15: (( 
    B_SUP a) 
    'or' ( 
    B_SUP b)) 
    = (( 
    O_el Y) 
    'or' ( 
    O_el Y)) by 
    A10,
    Def14;
    
         not (for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) 
    
        proof
    
          now
    
            assume for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE ; 
    
            let x be
    Element of Y; 
    
            (a
    . x) 
    =  
    FALSE by 
    A10;
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        then
    
        
    
    A16: ( 
    B_INF a) 
    = ( 
    O_el Y) by 
    Def13;
    
         not (for x be
    Element of Y holds (b 
    . x) 
    =  
    TRUE ) 
    
        proof
    
          now
    
            assume for x be
    Element of Y holds (b 
    . x) 
    =  
    TRUE ; 
    
            let x be
    Element of Y; 
    
            (b
    . x) 
    =  
    FALSE by 
    A13;
    
            hence thesis;
    
          end;
    
          hence thesis;
    
        end;
    
        then ((
    B_INF a) 
    '&' ( 
    B_INF b)) 
    = (( 
    O_el Y) 
    '&' ( 
    O_el Y)) by 
    A16,
    Def13;
    
        hence thesis by
    A9,
    A15,
    A12,
    Def13,
    Def14;
    
      end;
    
      now
    
        assume that
    
        
    
    A17: not (for x be 
    Element of Y holds ((a 
    '&' b) 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A18: not (for x be 
    Element of Y holds ((a 
    'or' b) 
    . x) 
    =  
    FALSE ); 
    
        (for x be
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & (for x be 
    Element of Y holds (b 
    . x) 
    =  
    FALSE ) implies for x be 
    Element of Y holds ((a 
    'or' b) 
    . x) 
    =  
    FALSE  
    
        proof
    
          assume that
    
          
    
    A19: for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE and 
    
          
    
    A20: for x be 
    Element of Y holds (b 
    . x) 
    =  
    FALSE ; 
    
          let x be
    Element of Y; 
    
          (a
    . x) 
    =  
    FALSE by 
    A19;
    
          then ((a
    . x) 
    'or' (b 
    . x)) 
    =  
    FALSE by 
    A20;
    
          hence thesis by
    Def4;
    
        end;
    
        then (
    B_SUP a) 
    = ( 
    I_el Y) or ( 
    B_SUP b) 
    = ( 
    I_el Y) by 
    A18,
    Def14;
    
        then
    
        
    
    A21: (( 
    B_SUP a) 
    'or' ( 
    B_SUP b)) 
    = ( 
    I_el Y) by 
    Th9;
    
        (for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & (for x be 
    Element of Y holds (b 
    . x) 
    =  
    TRUE ) implies for x be 
    Element of Y holds ((a 
    '&' b) 
    . x) 
    =  
    TRUE  
    
        proof
    
          assume that
    
          
    
    A22: for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE and 
    
          
    
    A23: for x be 
    Element of Y holds (b 
    . x) 
    =  
    TRUE ; 
    
          let x be
    Element of Y; 
    
          (a
    . x) 
    =  
    TRUE by 
    A22;
    
          then ((a
    . x) 
    '&' (b 
    . x)) 
    =  
    TRUE by 
    A23;
    
          hence thesis by
    MARGREL1:def 20;
    
        end;
    
        then (
    B_INF a) 
    = ( 
    O_el Y) or ( 
    B_INF b) 
    = ( 
    O_el Y) by 
    A17,
    Def13;
    
        then ((
    B_INF a) 
    '&' ( 
    B_INF b)) 
    = ( 
    O_el Y) by 
    Th4;
    
        hence thesis by
    A17,
    A18,
    A21,
    Def13,
    Def14;
    
      end;
    
      hence thesis by
    A1,
    A8;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:24
    
    for a be
    Function of Y, 
    BOOLEAN , d be 
    constant  
    Function of Y, 
    BOOLEAN holds ( 
    B_INF (d 
    'imp' a)) 
    = (d 
    'imp' ( 
    B_INF a)) & ( 
    B_INF (a 
    'imp' d)) 
    = (( 
    B_SUP a) 
    'imp' d) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let d be
    constant  
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: (( 
    I_el Y) 
    'imp' ( 
    I_el Y)) 
    = ( 
    I_el Y) 
    
      proof
    
        let x be
    Element of Y; 
    
        ((
    I_el Y) 
    . x) 
    =  
    TRUE by 
    Def11;
    
        then (((
    I_el Y) 
    'imp' ( 
    I_el Y)) 
    . x) 
    = (( 
    'not'  
    TRUE ) 
    'or'  
    TRUE ) by 
    Def8;
    
        hence thesis by
    Def11;
    
      end;
    
      
    
      
    
    A2: (( 
    B_SUP a) 
    'imp' d) 
    = (( 
    B_SUP a) 
    'imp' ( 
    B_INF d)) by 
    Th21;
    
      
    
      
    
    A3: ( 
    B_INF d) 
    = d by 
    Th21;
    
      
    
      
    
    A4: (( 
    O_el Y) 
    'imp' ( 
    I_el Y)) 
    = ( 
    I_el Y) 
    
      proof
    
        let x be
    Element of Y; 
    
        (((
    O_el Y) 
    'imp' ( 
    I_el Y)) 
    . x) 
    = (( 
    'not' (( 
    O_el Y) 
    . x)) 
    'or' (( 
    I_el Y) 
    . x)) & (( 
    I_el Y) 
    . x) 
    =  
    TRUE by 
    Def8,
    Def11;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A5: (( 
    I_el Y) 
    'imp' ( 
    O_el Y)) 
    = ( 
    O_el Y) 
    
      proof
    
        let x be
    Element of Y; 
    
        ((
    O_el Y) 
    . x) 
    =  
    FALSE by 
    Def10;
    
        then
    
        
    
    A6: (( 
    'not' (( 
    I_el Y) 
    . x)) 
    'or' (( 
    O_el Y) 
    . x)) 
    = (( 
    'not'  
    TRUE ) 
    'or'  
    FALSE ) by 
    Def11;
    
        (((
    I_el Y) 
    'imp' ( 
    O_el Y)) 
    . x) 
    = (( 
    'not' (( 
    I_el Y) 
    . x)) 
    'or' (( 
    O_el Y) 
    . x)) by 
    Def8;
    
        hence thesis by
    A6,
    Def10;
    
      end;
    
      
    
      
    
    A7: (( 
    O_el Y) 
    'imp' ( 
    O_el Y)) 
    = ( 
    I_el Y) 
    
      proof
    
        let x be
    Element of Y; 
    
        ((
    O_el Y) 
    . x) 
    =  
    FALSE by 
    Def10;
    
        then (((
    O_el Y) 
    'imp' ( 
    O_el Y)) 
    . x) 
    = ( 
    TRUE  
    'or'  
    FALSE ) by 
    Def8;
    
        hence thesis by
    Def11;
    
      end;
    
      
    
      
    
    A8: (d 
    'imp' ( 
    B_INF a)) 
    = (( 
    B_INF d) 
    'imp' ( 
    B_INF a)) by 
    Th21;
    
      
    
      
    
    A9: (( 
    B_SUP a) 
    'imp' d) 
    = (( 
    B_SUP a) 
    'imp' ( 
    B_SUP d)) by 
    Th21;
    
      
    
    A10: 
    
      now
    
        assume
    
        
    
    A11: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ; 
    
        now
    
          per cases by
    A11;
    
            case
    
            
    
    A12: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ); 
    
            
    
    A13: 
    
            now
    
              assume
    
              
    
    A14: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
              now
    
                per cases by
    A14;
    
                  case
    
                  
    
    A15: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
                  
    
                  
    
    A16: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    TRUE & (a 
    . x) 
    =  
    TRUE by 
    A12,
    A15;
    
                    then ((a
    'imp' d) 
    . x) 
    = (( 
    'not'  
    TRUE ) 
    'or'  
    TRUE ) by 
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A17: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    TRUE & (a 
    . x) 
    =  
    TRUE by 
    A12,
    A15;
    
                    then ((d
    'imp' a) 
    . x) 
    = (( 
    'not'  
    TRUE ) 
    'or'  
    TRUE ) by 
    Def8;
    
                    hence thesis;
    
                  end;
    
                  (
    B_INF a) 
    = ( 
    I_el Y) by 
    A15,
    Def13;
    
                  then
    
                  
    
    A18: (d 
    'imp' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    A8,
    A1,
    A12,
    Def13;
    
                  
    
                  
    
    A19: ( 
    B_SUP a) 
    = ( 
    I_el Y) by 
    A15,
    Def14;
    
                  (
    B_SUP d) 
    = ( 
    I_el Y) by 
    A12,
    Def14;
    
                  hence thesis by
    A9,
    A1,
    A17,
    A16,
    A19,
    A18,
    Def13;
    
                end;
    
                  case
    
                  
    
    A20: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ); 
    
                  
    
                  
    
    A21: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    'imp' a) 
    . x) 
    = (( 
    'not' (d 
    . x)) 
    'or' (a 
    . x)) & (d 
    . x) 
    =  
    TRUE by 
    A12,
    Def8;
    
                    hence thesis by
    A20;
    
                  end;
    
                  
    
    A22: 
    
                  now
    
                    assume
    
                    
    
    A23: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE ; 
    
                    let x be
    Element of Y; 
    
                    ((d
    'imp' a) 
    . x) 
    =  
    TRUE by 
    A23;
    
                    hence contradiction by
    A21;
    
                  end;
    
                  
    
                  
    
    A24: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    TRUE & (a 
    . x) 
    =  
    FALSE by 
    A12,
    A20;
    
                    then ((a
    'imp' d) 
    . x) 
    = (( 
    'not'  
    FALSE ) 
    'or'  
    TRUE ) by 
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A25: ( 
    B_SUP a) 
    = ( 
    O_el Y) by 
    A20,
    Def14;
    
                  (
    B_SUP d) 
    = ( 
    I_el Y) by 
    A12,
    Def14;
    
                  then
    
                  
    
    A26: (( 
    B_SUP a) 
    'imp' d) 
    = ( 
    I_el Y) by 
    A4,
    A25,
    Th21;
    
                  
    
                  
    
    A27: ( 
    B_INF a) 
    = ( 
    O_el Y) by 
    A20,
    Def13;
    
                  (
    B_INF d) 
    = ( 
    I_el Y) by 
    A12,
    Def13;
    
                  hence thesis by
    A8,
    A5,
    A22,
    A24,
    A27,
    A26,
    Def13;
    
                end;
    
                  case
    
                  
    
    A28: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ; 
    
                  
    
                  
    
    A29: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    'imp' a) 
    . x) 
    = (( 
    'not' (d 
    . x)) 
    'or' (a 
    . x)) & (a 
    . x) 
    =  
    TRUE by 
    A28,
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A30: ( 
    B_INF d) 
    = ( 
    I_el Y) by 
    A12,
    Def13;
    
                  
    
                  
    
    A31: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((a
    'imp' d) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (d 
    . x)) & (d 
    . x) 
    =  
    TRUE by 
    A12,
    Def8;
    
                    hence thesis;
    
                  end;
    
                  (
    B_INF a) 
    = ( 
    I_el Y) & ( 
    B_SUP a) 
    = ( 
    O_el Y) by 
    A28,
    Def13,
    Def14;
    
                  hence thesis by
    A8,
    A2,
    A1,
    A4,
    A29,
    A31,
    A30,
    Def13;
    
                end;
    
              end;
    
              hence thesis;
    
            end;
    
            now
    
              
    
              
    
    A32: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE  
    
              proof
    
                let x be
    Element of Y; 
    
                ((
    'not' (a 
    . x)) 
    'or' (d 
    . x)) 
    = ((( 
    'not' a) 
    . x) 
    'or' (d 
    . x)) by 
    MARGREL1:def 19;
    
                then ((
    'not' (a 
    . x)) 
    'or' (d 
    . x)) 
    = ((( 
    'not' a) 
    'or' d) 
    . x) by 
    Def4;
    
                then
    
                
    
    A33: (( 
    'not' (a 
    . x)) 
    'or' (d 
    . x)) 
    = ((( 
    'not' a) 
    'or' ( 
    I_el Y)) 
    . x) by 
    A3,
    A12,
    Def13;
    
                ((a
    'imp' d) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (d 
    . x)) by 
    Def8;
    
                hence thesis by
    Th9,
    Def11,
    A33;
    
              end;
    
              
    
              
    
    A34: ( 
    B_INF d) 
    = ( 
    I_el Y) by 
    A12,
    Def13;
    
              assume that
    
              
    
    A35: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) and 
    
              
    
    A36: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
              
    
              
    
    A37: ( 
    B_INF a) 
    = ( 
    O_el Y) by 
    A35,
    Def13;
    
              (
    B_SUP a) 
    = ( 
    I_el Y) by 
    A36,
    Def14;
    
              then
    
              
    
    A38: (( 
    B_SUP a) 
    'imp' d) 
    = ( 
    I_el Y) by 
    A1,
    A34,
    Th21;
    
              (d
    'imp' a) 
    = a 
    
              proof
    
                let x be
    Element of Y; 
    
                ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    'not' d) 
    . x) 
    'or' (a 
    . x)) by 
    MARGREL1:def 19;
    
                then ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    'not' d) 
    'or' a) 
    . x) by 
    Def4;
    
                then ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    'not' ( 
    I_el Y)) 
    'or' a) 
    . x) by 
    A3,
    A12,
    Def13;
    
                then
    
                
    
    A39: (( 
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    O_el Y) 
    'or' a) 
    . x) by 
    Th1;
    
                ((d
    'imp' a) 
    . x) 
    = (( 
    'not' (d 
    . x)) 
    'or' (a 
    . x)) by 
    Def8;
    
                hence thesis by
    A39,
    Th8;
    
              end;
    
              hence thesis by
    A8,
    A5,
    A12,
    Def13,
    A37,
    A32,
    A38;
    
            end;
    
            hence thesis by
    A13;
    
          end;
    
            case
    
            
    
    A40: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ); 
    
            
    
    A41: 
    
            now
    
              assume
    
              
    
    A42: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
              now
    
                per cases by
    A42;
    
                  case
    
                  
    
    A43: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
                  
    
                  
    
    A44: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    TRUE by 
    A40,
    A43;
    
                    then ((a
    'imp' d) 
    . x) 
    = (( 
    'not'  
    TRUE ) 
    'or'  
    FALSE ) by 
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
    A45: 
    
                  now
    
                    assume
    
                    
    
    A46: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE ; 
    
                    let x be
    Element of Y; 
    
                    ((a
    'imp' d) 
    . x) 
    =  
    TRUE by 
    A46;
    
                    hence contradiction by
    A44;
    
                  end;
    
                  
    
                  
    
    A47: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    TRUE by 
    A40,
    A43;
    
                    then ((d
    'imp' a) 
    . x) 
    = (( 
    'not'  
    FALSE ) 
    'or'  
    TRUE ) by 
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A48: ( 
    B_SUP a) 
    = ( 
    I_el Y) by 
    A43,
    Def14;
    
                  (
    B_SUP d) 
    = ( 
    O_el Y) by 
    A40,
    Def14;
    
                  then
    
                  
    
    A49: (( 
    B_SUP a) 
    'imp' d) 
    = ( 
    O_el Y) by 
    A5,
    A48,
    Th21;
    
                  
    
                  
    
    A50: ( 
    B_INF a) 
    = ( 
    I_el Y) by 
    A43,
    Def13;
    
                  (
    B_INF d) 
    = ( 
    O_el Y) by 
    A40,
    Def13;
    
                  hence thesis by
    A8,
    A4,
    A47,
    A45,
    A50,
    A49,
    Def13;
    
                end;
    
                  case
    
                  
    
    A51: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ); 
    
                  
    
                  
    
    A52: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    FALSE by 
    A40,
    A51;
    
                    then ((d
    'imp' a) 
    . x) 
    = (( 
    'not'  
    FALSE ) 
    'or'  
    FALSE ) by 
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A53: ( 
    B_INF d) 
    = ( 
    O_el Y) by 
    A40,
    Def13;
    
                  
    
                  
    
    A54: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((a
    'imp' d) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (d 
    . x)) & (a 
    . x) 
    =  
    FALSE by 
    A51,
    Def8;
    
                    hence thesis;
    
                  end;
    
                  (
    B_INF a) 
    = ( 
    O_el Y) & ( 
    B_SUP a) 
    = ( 
    O_el Y) by 
    A51,
    Def13,
    Def14;
    
                  hence thesis by
    A8,
    A2,
    A7,
    A52,
    A54,
    A53,
    Def13;
    
                end;
    
                  case
    
                  
    
    A55: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ; 
    
                  
    
                  
    
    A56: for x be 
    Element of Y holds ((a 
    'imp' d) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((a
    'imp' d) 
    . x) 
    = (( 
    'not' (a 
    . x)) 
    'or' (d 
    . x)) & (a 
    . x) 
    =  
    FALSE by 
    A55,
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A57: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    'imp' a) 
    . x) 
    = (( 
    'not' (d 
    . x)) 
    'or' (a 
    . x)) & (a 
    . x) 
    =  
    TRUE by 
    A55,
    Def8;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A58: ( 
    B_INF d) 
    = ( 
    O_el Y) by 
    A40,
    Def13;
    
                  (
    B_SUP a) 
    = ( 
    O_el Y) by 
    A55,
    Def14;
    
                  then
    
                  
    
    A59: (( 
    B_SUP a) 
    'imp' d) 
    = ( 
    I_el Y) by 
    A7,
    A58,
    Th21;
    
                  (
    B_INF a) 
    = ( 
    I_el Y) by 
    A55,
    Def13;
    
                  hence thesis by
    A8,
    A4,
    A57,
    A56,
    A58,
    A59,
    Def13;
    
                end;
    
              end;
    
              hence thesis;
    
            end;
    
            now
    
              
    
              
    
    A60: ( 
    B_INF d) 
    = ( 
    O_el Y) by 
    A40,
    Def13;
    
              
    
              
    
    A61: for x be 
    Element of Y holds ((d 
    'imp' a) 
    . x) 
    =  
    TRUE  
    
              proof
    
                let x be
    Element of Y; 
    
                ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    'not' d) 
    . x) 
    'or' (a 
    . x)) by 
    MARGREL1:def 19;
    
                then ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    'not' ( 
    O_el Y)) 
    'or' a) 
    . x) by 
    A3,
    A60,
    Def4;
    
                then ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    = ((( 
    I_el Y) 
    'or' a) 
    . x) by 
    Th1;
    
                then ((
    'not' (d 
    . x)) 
    'or' (a 
    . x)) 
    =  
    TRUE by 
    Def11,
    Th9;
    
                hence thesis by
    Def8;
    
              end;
    
              (a
    'imp' d) 
    = ( 
    'not' a) 
    
              proof
    
                let x be
    Element of Y; 
    
                ((
    'not' (a 
    . x)) 
    'or' (d 
    . x)) 
    = ((( 
    'not' a) 
    . x) 
    'or' (d 
    . x)) by 
    MARGREL1:def 19;
    
                then ((
    'not' (a 
    . x)) 
    'or' (d 
    . x)) 
    = ((( 
    'not' a) 
    'or' d) 
    . x) by 
    Def4;
    
                then ((
    'not' (a 
    . x)) 
    'or' (d 
    . x)) 
    = (( 
    'not' a) 
    . x) by 
    A3,
    A60,
    Th8;
    
                hence thesis by
    Def8;
    
              end;
    
              then
    
              
    
    A62: ( 
    B_INF (a 
    'imp' d)) 
    = ( 
    'not' ( 
    B_SUP a)) by 
    Th18;
    
              assume ( not (for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE )) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
              then
    
              
    
    A63: ( 
    B_INF a) 
    = ( 
    O_el Y) & ( 
    B_SUP a) 
    = ( 
    I_el Y) by 
    Def13,
    Def14;
    
              (
    B_INF d) 
    = ( 
    O_el Y) by 
    A40,
    Def13;
    
              hence thesis by
    A8,
    A2,
    A5,
    A7,
    A61,
    A62,
    A63,
    Def13,
    Th1;
    
            end;
    
            hence thesis by
    A41;
    
          end;
    
            case
    
            
    
    A64: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) & for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            (d
    . x) 
    =  
    FALSE by 
    A64;
    
            hence thesis by
    A64;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      now
    
        assume that
    
        
    
    A65: not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A66: not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ); 
    
        now
    
          per cases by
    Th20;
    
            case d
    = ( 
    O_el Y); 
    
            hence thesis by
    A66,
    Def10;
    
          end;
    
            case d
    = ( 
    I_el Y); 
    
            hence thesis by
    A65,
    Def11;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis by
    A10;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:25
    
    for a be
    Function of Y, 
    BOOLEAN , d be 
    constant  
    Function of Y, 
    BOOLEAN holds ( 
    B_INF (d 
    'or' a)) 
    = (d 
    'or' ( 
    B_INF a)) & ( 
    B_SUP (d 
    '&' a)) 
    = (d 
    '&' ( 
    B_SUP a)) & ( 
    B_SUP (a 
    '&' d)) 
    = (( 
    B_SUP a) 
    '&' d) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let d be
    constant  
    Function of Y, 
    BOOLEAN ; 
    
      
    
      
    
    A1: (d 
    'or' ( 
    B_INF a)) 
    = (( 
    B_INF d) 
    'or' ( 
    B_INF a)) by 
    Th21;
    
      
    
      
    
    A2: (d 
    '&' ( 
    B_SUP a)) 
    = (( 
    B_SUP d) 
    '&' ( 
    B_SUP a)) by 
    Th21;
    
      
    
      
    
    A3: ( 
    B_INF d) 
    = d by 
    Th21;
    
      
    
    A4: 
    
      now
    
        assume
    
        
    
    A5: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ; 
    
        now
    
          per cases by
    A5;
    
            case
    
            
    
    A6: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ); 
    
            
    
    A7: 
    
            now
    
              assume
    
              
    
    A8: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
              now
    
                per cases by
    A8;
    
                  case
    
                  
    
    A9: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
                  
    
                  
    
    A10: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    TRUE & (a 
    . x) 
    =  
    TRUE by 
    A6,
    A9;
    
                    then ((d
    '&' a) 
    . x) 
    = ( 
    TRUE  
    '&'  
    TRUE ) by 
    MARGREL1:def 20;
    
                    hence thesis;
    
                  end;
    
                  
    
    A11: 
    
                  now
    
                    assume
    
                    
    
    A12: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE ; 
    
                    let x be
    Element of Y; 
    
                    ((d
    '&' a) 
    . x) 
    =  
    TRUE by 
    A10;
    
                    hence contradiction by
    A12;
    
                  end;
    
                  
    
                  
    
    A13: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    'or' a) 
    . x) 
    = ((d 
    . x) 
    'or' (a 
    . x)) & (a 
    . x) 
    =  
    TRUE by 
    A9,
    Def4;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A14: ( 
    B_INF a) 
    = ( 
    I_el Y) & ( 
    B_SUP a) 
    = ( 
    I_el Y) by 
    A9,
    Def13,
    Def14;
    
                  (
    B_INF d) 
    = ( 
    I_el Y) & ( 
    B_SUP d) 
    = ( 
    I_el Y) by 
    A6,
    Def13,
    Def14;
    
                  hence thesis by
    A1,
    A2,
    A13,
    A11,
    A14,
    Def13,
    Def14;
    
                end;
    
                  case
    
                  
    
    A15: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ); 
    
                  
    
                  
    
    A16: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    '&' a) 
    . x) 
    = ((d 
    . x) 
    '&' (a 
    . x)) & (a 
    . x) 
    =  
    FALSE by 
    A15,
    MARGREL1:def 20;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A17: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    'or' a) 
    . x) 
    = ((d 
    . x) 
    'or' (a 
    . x)) & (d 
    . x) 
    =  
    TRUE by 
    A6,
    Def4;
    
                    hence thesis;
    
                  end;
    
                  (
    B_SUP a) 
    = ( 
    O_el Y) by 
    A15,
    Def14;
    
                  then
    
                  
    
    A18: (d 
    '&' ( 
    B_SUP a)) 
    = ( 
    O_el Y) by 
    Th4;
    
                  
    
                  
    
    A19: ( 
    B_INF a) 
    = ( 
    O_el Y) by 
    A15,
    Def13;
    
                  (
    B_INF d) 
    = ( 
    I_el Y) by 
    A6,
    Def13;
    
                  then (d
    'or' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    A1,
    A19,
    Th8;
    
                  hence thesis by
    A17,
    A16,
    A18,
    Def13,
    Def14;
    
                end;
    
                  case
    
                  
    
    A20: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ; 
    
                  
    
                  
    
    A21: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    TRUE & (a 
    . x) 
    =  
    FALSE by 
    A6,
    A20;
    
                    then ((d
    '&' a) 
    . x) 
    = ( 
    TRUE  
    '&'  
    FALSE ) by 
    MARGREL1:def 20;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A22: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    TRUE & (a 
    . x) 
    =  
    FALSE by 
    A6,
    A20;
    
                    then ((d
    'or' a) 
    . x) 
    = ( 
    TRUE  
    'or'  
    FALSE ) by 
    Def4;
    
                    hence thesis;
    
                  end;
    
                  (
    B_SUP a) 
    = ( 
    O_el Y) by 
    A20,
    Def14;
    
                  then
    
                  
    
    A23: (d 
    '&' ( 
    B_SUP a)) 
    = ( 
    O_el Y) by 
    Th4;
    
                  (
    B_INF d) 
    = ( 
    I_el Y) by 
    A6,
    Def13;
    
                  then (d
    'or' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    A1,
    Th9;
    
                  hence thesis by
    A22,
    A21,
    A23,
    Def13,
    Def14;
    
                end;
    
              end;
    
              hence thesis;
    
            end;
    
            now
    
              assume that
    
              
    
    A24: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) and not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
              
    
              
    
    A25: ( 
    B_INF a) 
    = ( 
    O_el Y) by 
    A24,
    Def13;
    
              (
    B_INF d) 
    = ( 
    I_el Y) by 
    A6,
    Def13;
    
              then
    
              
    
    A26: (d 
    'or' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    A1,
    A25,
    Th8;
    
              
    
              
    
    A27: d 
    = ( 
    I_el Y) by 
    A3,
    A6,
    Def13;
    
              
    
              
    
    A28: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE by 
    A27,
    Th9,
    Def11;
    
              
    
              
    
    A29: (d 
    '&' a) 
    = a 
    
              proof
    
                let x be
    Element of Y; 
    
                ((d
    '&' a) 
    . x) 
    = ((( 
    I_el Y) 
    . x) 
    '&' (a 
    . x)) by 
    A27,
    MARGREL1:def 20;
    
                then ((d
    '&' a) 
    . x) 
    = ( 
    TRUE  
    '&' (a 
    . x)) by 
    Def11;
    
                hence thesis;
    
              end;
    
              (
    B_SUP d) 
    = ( 
    I_el Y) by 
    A6,
    Def14;
    
              hence thesis by
    A2,
    A28,
    A29,
    A26,
    Def13,
    Th5;
    
            end;
    
            hence thesis by
    A7;
    
          end;
    
            case
    
            
    
    A30: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ); 
    
            
    
    A31: 
    
            now
    
              assume
    
              
    
    A32: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) or for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
              now
    
                per cases by
    A32;
    
                  case
    
                  
    
    A33: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
                  
    
                  
    
    A34: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    'or' a) 
    . x) 
    = ((d 
    . x) 
    'or' (a 
    . x)) & (d 
    . x) 
    =  
    FALSE by 
    A30,
    Def4;
    
                    hence thesis by
    A33;
    
                  end;
    
                  (
    B_SUP d) 
    = ( 
    O_el Y) by 
    A30,
    Def14;
    
                  then
    
                  
    
    A35: (d 
    '&' ( 
    B_SUP a)) 
    = ( 
    O_el Y) by 
    A2,
    Th4;
    
                  
    
                  
    
    A36: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    ((d
    '&' a) 
    . x) 
    = ((d 
    . x) 
    '&' (a 
    . x)) & (d 
    . x) 
    =  
    FALSE by 
    A30,
    MARGREL1:def 20;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A37: ( 
    B_INF a) 
    = ( 
    I_el Y) by 
    A33,
    Def13;
    
                  (
    B_INF d) 
    = ( 
    O_el Y) by 
    A30,
    Def13;
    
                  then (d
    'or' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    A1,
    A37,
    Th8;
    
                  hence thesis by
    A34,
    A36,
    A35,
    Def13,
    Def14;
    
                end;
    
                  case
    
                  
    
    A38: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ); 
    
                  
    
                  
    
    A39: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    FALSE by 
    A30,
    A38;
    
                    then ((d
    'or' a) 
    . x) 
    = ( 
    FALSE  
    'or'  
    FALSE ) by 
    Def4;
    
                    hence thesis;
    
                  end;
    
                  
    
    A40: 
    
                  now
    
                    assume
    
                    
    
    A41: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE ; 
    
                    let x be
    Element of Y; 
    
                    ((d
    'or' a) 
    . x) 
    =  
    FALSE by 
    A39;
    
                    hence contradiction by
    A41;
    
                  end;
    
                  (
    B_SUP d) 
    = ( 
    O_el Y) by 
    A30,
    Def14;
    
                  then
    
                  
    
    A42: (d 
    '&' ( 
    B_SUP a)) 
    = ( 
    O_el Y) by 
    A2,
    Th4;
    
                  
    
                  
    
    A43: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    FALSE by 
    A30,
    A38;
    
                    then ((d
    '&' a) 
    . x) 
    = ( 
    FALSE  
    '&'  
    FALSE ) by 
    MARGREL1:def 20;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A44: ( 
    B_INF a) 
    = ( 
    O_el Y) by 
    A38,
    Def13;
    
                  (
    B_INF d) 
    = ( 
    O_el Y) by 
    A30,
    Def13;
    
                  hence thesis by
    A1,
    A40,
    A43,
    A44,
    A42,
    Def13,
    Def14;
    
                end;
    
                  case
    
                  
    
    A45: (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ) & for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ; 
    
                  
    
                  
    
    A46: for x be 
    Element of Y holds ((d 
    'or' a) 
    . x) 
    =  
    TRUE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    TRUE by 
    A30,
    A45;
    
                    then ((d
    'or' a) 
    . x) 
    = ( 
    FALSE  
    'or'  
    TRUE ) by 
    Def4;
    
                    hence thesis;
    
                  end;
    
                  (
    B_SUP d) 
    = ( 
    O_el Y) by 
    A30,
    Def14;
    
                  then
    
                  
    
    A47: (d 
    '&' ( 
    B_SUP a)) 
    = ( 
    O_el Y) by 
    A2,
    Th4;
    
                  
    
                  
    
    A48: for x be 
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE  
    
                  proof
    
                    let x be
    Element of Y; 
    
                    (d
    . x) 
    =  
    FALSE & (a 
    . x) 
    =  
    TRUE by 
    A30,
    A45;
    
                    then ((d
    '&' a) 
    . x) 
    = ( 
    FALSE  
    '&'  
    TRUE ) by 
    MARGREL1:def 20;
    
                    hence thesis;
    
                  end;
    
                  
    
                  
    
    A49: ( 
    B_INF a) 
    = ( 
    I_el Y) by 
    A45,
    Def13;
    
                  (
    B_INF d) 
    = ( 
    O_el Y) by 
    A30,
    Def13;
    
                  then (d
    'or' ( 
    B_INF a)) 
    = ( 
    I_el Y) by 
    A1,
    A49,
    Th8;
    
                  hence thesis by
    A46,
    A48,
    A47,
    Def13,
    Def14;
    
                end;
    
              end;
    
              hence thesis;
    
            end;
    
            now
    
              for x be
    Element of Y holds ((d 
    '&' a) 
    . x) 
    =  
    FALSE  
    
              proof
    
                let x be
    Element of Y; 
    
                ((d
    '&' a) 
    . x) 
    = ((( 
    O_el Y) 
    '&' a) 
    . x) by 
    A3,
    A30,
    Def13;
    
                hence thesis by
    Def10,
    Th4;
    
              end;
    
              then
    
              
    
    A50: ( 
    B_SUP (d 
    '&' a)) 
    = ( 
    O_el Y) by 
    Def14;
    
              assume that
    
              
    
    A51: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) and not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
              (
    B_INF d) 
    = ( 
    O_el Y) by 
    A30,
    Def13;
    
              then
    
              
    
    A52: (d 
    'or' ( 
    B_INF a)) 
    = (( 
    O_el Y) 
    'or' ( 
    O_el Y)) by 
    A1,
    A51,
    Def13;
    
              
    
              
    
    A53: (d 
    'or' a) 
    = a 
    
              proof
    
                let x be
    Element of Y; 
    
                ((d
    'or' a) 
    . x) 
    = ((d 
    . x) 
    'or' (a 
    . x)) by 
    Def4;
    
                then ((d
    'or' a) 
    . x) 
    = ( 
    FALSE  
    'or' (a 
    . x)) by 
    A30;
    
                hence thesis;
    
              end;
    
              (
    B_SUP d) 
    = ( 
    O_el Y) by 
    A30,
    Def14;
    
              hence thesis by
    A2,
    A51,
    A53,
    A50,
    A52,
    Def13,
    Th4;
    
            end;
    
            hence thesis by
    A31;
    
          end;
    
            case
    
            
    
    A54: (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) & for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ; 
    
            let x be
    Element of Y; 
    
            (d
    . x) 
    =  
    FALSE by 
    A54;
    
            hence thesis by
    A54;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      now
    
        assume that
    
        
    
    A55: not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A56: not (for x be 
    Element of Y holds (d 
    . x) 
    =  
    FALSE ); 
    
        now
    
          per cases by
    Th20;
    
            case d
    = ( 
    O_el Y); 
    
            hence thesis by
    A56,
    Def10;
    
          end;
    
            case d
    = ( 
    I_el Y); 
    
            hence thesis by
    A55,
    Def11;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis by
    A4;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:26
    
    for a be
    Function of Y, 
    BOOLEAN , x be 
    Element of Y holds (( 
    B_INF a) 
    . x) 
    <= (a 
    . x) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        assume not (for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE ); 
    
        then (
    B_INF a) 
    = ( 
    O_el Y) by 
    Def13;
    
        then ((
    B_INF a) 
    . x) 
    =  
    FALSE by 
    Def10;
    
        then (((
    B_INF a) 
    . x) 
    => (a 
    . x)) 
    =  
    TRUE ; 
    
        hence thesis;
    
      end;
    
      now
    
        assume for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE ; 
    
        then (a
    . x) 
    =  
    TRUE ; 
    
        then (((
    B_INF a) 
    . x) 
    => (a 
    . x)) 
    =  
    TRUE ; 
    
        hence thesis;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:27
    
    for a be
    Function of Y, 
    BOOLEAN , x be 
    Element of Y holds (a 
    . x) 
    <= (( 
    B_SUP a) 
    . x) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let x be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        assume not (for x be
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
        then (
    B_SUP a) 
    = ( 
    I_el Y) by 
    Def14;
    
        then ((
    B_SUP a) 
    . x) 
    =  
    TRUE by 
    Def11;
    
        then ((a
    . x) 
    => (( 
    B_SUP a) 
    . x)) 
    =  
    TRUE ; 
    
        hence thesis;
    
      end;
    
      now
    
        assume for x be
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
        then (a
    . x) 
    =  
    FALSE ; 
    
        then ((a
    . x) 
    => (( 
    B_SUP a) 
    . x)) 
    =  
    TRUE ; 
    
        hence thesis;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    begin
    
    definition
    
      let Y;
    
      let a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y; 
    
      :: 
    
    BVFUNC_1:def15
    
      pred a
    
    is_dependent_of PA means for F be 
    set st F 
    in PA holds for x1,x2 be 
    set st x1 
    in F & x2 
    in F holds (a 
    . x1) 
    = (a 
    . x2); 
    
    end
    
    theorem :: 
    
    BVFUNC_1:28
    
    for a be
    Function of Y, 
    BOOLEAN holds a 
    is_dependent_of ( 
    %I Y) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      for F be
    set st F 
    in ( 
    %I Y) holds for x1,x2 be 
    set st x1 
    in F & x2 
    in F holds (a 
    . x1) 
    = (a 
    . x2) 
    
      proof
    
        let F be
    set;
    
        assume F
    in ( 
    %I Y); 
    
        then F
    in { B : ex z be 
    set st B 
    =  
    {z} & z
    in Y } by 
    PARTIT1: 31;
    
        then ex B st F
    = B & ex z be 
    set st B 
    =  
    {z} & z
    in Y; 
    
        then
    
        consider z be
    set such that 
    
        
    
    A1: F 
    =  
    {z} and z
    in Y; 
    
        let x1,x2 be
    set;
    
        assume that
    
        
    
    A2: x1 
    in F and 
    
        
    
    A3: x2 
    in F; 
    
        x1
    = z by 
    A1,
    A2,
    TARSKI:def 1;
    
        hence thesis by
    A1,
    A3,
    TARSKI:def 1;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:29
    
    for a be
    constant  
    Function of Y, 
    BOOLEAN holds a 
    is_dependent_of ( 
    %O Y) 
    
    proof
    
      let a be
    constant  
    Function of Y, 
    BOOLEAN ; 
    
      for F be
    set st F 
    in ( 
    %O Y) holds for x1,x2 be 
    set st x1 
    in F & x2 
    in F holds (a 
    . x1) 
    = (a 
    . x2) 
    
      proof
    
        let F be
    set;
    
        for x1,x2 be
    Element of Y holds (a 
    . x1) 
    = (a 
    . x2) 
    
        proof
    
          let x1,x2 be
    Element of Y; 
    
          per cases by
    Th20;
    
            suppose
    
            
    
    A1: a 
    = ( 
    O_el Y); 
    
            then (a
    . x1) 
    =  
    FALSE by 
    Def10;
    
            hence thesis by
    A1,
    Def10;
    
          end;
    
            suppose
    
            
    
    A2: a 
    = ( 
    I_el Y); 
    
            then (a
    . x1) 
    =  
    TRUE by 
    Def11;
    
            hence thesis by
    A2,
    Def11;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis;
    
    end;
    
    definition
    
      let Y;
    
      let PA be
    a_partition of Y; 
    
      :: original:
    Element
    
      redefine
    
      mode
    
    Element of PA -> 
    Subset of Y ; 
    
      coherence
    
      proof
    
        let x be
    Element of PA; 
    
        thus thesis;
    
      end;
    
    end
    
    definition
    
      let Y;
    
      let x be
    Element of Y; 
    
      let PA be
    a_partition of Y; 
    
      :: original:
    EqClass
    
      redefine
    
      func
    
    EqClass (x,PA) -> 
    Element of PA ; 
    
      coherence by
    EQREL_1:def 6;
    
    end
    
    definition
    
      let Y;
    
      let a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y; 
    
      :: 
    
    BVFUNC_1:def16
    
      func
    
    B_INF (a,PA) -> 
    Function of Y, 
    BOOLEAN means 
    
      :
    
    Def16: for y be 
    Element of Y holds ((for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies (it 
    . y) 
    =  
    TRUE ) & ( not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies (it 
    . y) 
    =  
    FALSE ); 
    
      existence
    
      proof
    
        defpred
    
    P[
    Element of Y, 
    set] means ((for x be
    Element of Y st x 
    in ( 
    EqClass ($1,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies $2 
    =  
    TRUE ) & ( not (for x be 
    Element of Y st x 
    in ( 
    EqClass ($1,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies $2 
    =  
    FALSE ); 
    
        
    
        
    
    A1: for e be 
    Element of Y holds ex u be 
    Element of 
    BOOLEAN st 
    P[e, u]
    
        proof
    
          let e be
    Element of Y; 
    
          per cases ;
    
            suppose for x be
    Element of Y st x 
    in ( 
    EqClass (e,PA)) holds (a 
    . x) 
    =  
    TRUE ; 
    
            hence thesis;
    
          end;
    
            suppose not (for x be
    Element of Y st x 
    in ( 
    EqClass (e,PA)) holds (a 
    . x) 
    =  
    TRUE ); 
    
            hence thesis;
    
          end;
    
        end;
    
        consider f be
    Function of Y, 
    BOOLEAN such that 
    
        
    
    A2: for e be 
    Element of Y holds 
    P[e, (f
    . e)] from 
    FUNCT_2:sch 3(
    A1);
    
        reconsider f as
    Function of Y, 
    BOOLEAN ; 
    
        reconsider f as
    Function of Y, 
    BOOLEAN ; 
    
        take f;
    
        thus thesis by
    A2;
    
      end;
    
      uniqueness
    
      proof
    
        let A1,A2 be
    Function of Y, 
    BOOLEAN such that 
    
        
    
    A3: for y be 
    Element of Y holds ((for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies (A1 
    . y) 
    =  
    TRUE ) & ( not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies (A1 
    . y) 
    =  
    FALSE ) and 
    
        
    
    A4: for y be 
    Element of Y holds ((for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies (A2 
    . y) 
    =  
    TRUE ) & ( not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) implies (A2 
    . y) 
    =  
    FALSE ); 
    
        let y be
    Element of Y; 
    
        
    
    A5: 
    
        now
    
          assume
    
          
    
    A6: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ); 
    
          then (A2
    . y) 
    =  
    FALSE by 
    A4;
    
          hence thesis by
    A3,
    A6;
    
        end;
    
        now
    
          assume
    
          
    
    A7: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ; 
    
          then (A2
    . y) 
    =  
    TRUE by 
    A4;
    
          hence thesis by
    A3,
    A7;
    
        end;
    
        hence thesis by
    A5;
    
      end;
    
    end
    
    definition
    
      let Y;
    
      let a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y; 
    
      :: 
    
    BVFUNC_1:def17
    
      func
    
    B_SUP (a,PA) -> 
    Function of Y, 
    BOOLEAN means 
    
      :
    
    Def17: for y be 
    Element of Y holds ((ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ) implies (it 
    . y) 
    =  
    TRUE ) & ( not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ) implies (it 
    . y) 
    =  
    FALSE ); 
    
      existence
    
      proof
    
        defpred
    
    P[
    Element of Y, 
    set] means ((ex x be
    Element of Y st x 
    in ( 
    EqClass ($1,PA)) & (a 
    . x) 
    =  
    TRUE ) implies $2 
    =  
    TRUE ) & ( not (ex x be 
    Element of Y st x 
    in ( 
    EqClass ($1,PA)) & (a 
    . x) 
    =  
    TRUE ) implies $2 
    =  
    FALSE ); 
    
        
    
        
    
    A1: for e be 
    Element of Y holds ex u be 
    Element of 
    BOOLEAN st 
    P[e, u]
    
        proof
    
          let e be
    Element of Y; 
    
          per cases ;
    
            suppose ex x be
    Element of Y st x 
    in ( 
    EqClass (e,PA)) & (a 
    . x) 
    =  
    TRUE ; 
    
            hence thesis;
    
          end;
    
            suppose not (ex x be
    Element of Y st x 
    in ( 
    EqClass (e,PA)) & (a 
    . x) 
    =  
    TRUE ); 
    
            hence thesis;
    
          end;
    
        end;
    
        consider f be
    Function of Y, 
    BOOLEAN such that 
    
        
    
    A2: for e be 
    Element of Y holds 
    P[e, (f
    . e)] from 
    FUNCT_2:sch 3(
    A1);
    
        reconsider f as
    Function of Y, 
    BOOLEAN ; 
    
        reconsider f as
    Function of Y, 
    BOOLEAN ; 
    
        take f;
    
        thus thesis by
    A2;
    
      end;
    
      uniqueness
    
      proof
    
        let A1,A2 be
    Function of Y, 
    BOOLEAN such that 
    
        
    
    A3: for y be 
    Element of Y holds ((ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ) implies (A1 
    . y) 
    =  
    TRUE ) & ( not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ) implies (A1 
    . y) 
    =  
    FALSE ) and 
    
        
    
    A4: for y be 
    Element of Y holds ((ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ) implies (A2 
    . y) 
    =  
    TRUE ) & ( not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ) implies (A2 
    . y) 
    =  
    FALSE ); 
    
        let y be
    Element of Y; 
    
        
    
    A5: 
    
        now
    
          assume
    
          
    
    A6: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ); 
    
          then (A2
    . y) 
    =  
    FALSE by 
    A4;
    
          hence thesis by
    A3,
    A6;
    
        end;
    
        now
    
          assume
    
          
    
    A7: ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ; 
    
          then (A2
    . y) 
    =  
    TRUE by 
    A4;
    
          hence thesis by
    A3,
    A7;
    
        end;
    
        hence thesis by
    A5;
    
      end;
    
    end
    
    theorem :: 
    
    BVFUNC_1:30
    
    for a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds ( 
    B_INF (a,PA)) 
    is_dependent_of PA 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      for F be
    set st F 
    in PA holds for x1,x2 be 
    set st x1 
    in F & x2 
    in F holds (( 
    B_INF (a,PA)) 
    . x1) 
    = (( 
    B_INF (a,PA)) 
    . x2) 
    
      proof
    
        let F be
    set;
    
        assume
    
        
    
    A1: F 
    in PA; 
    
        let x1,x2 be
    set;
    
        assume that
    
        
    
    A2: x1 
    in F and 
    
        
    
    A3: x2 
    in F; 
    
        reconsider x1 as
    Element of Y by 
    A1,
    A2;
    
        
    
        
    
    A4: ( 
    EqClass (x1,PA)) 
    = F or ( 
    EqClass (x1,PA)) 
    misses F by 
    A1,
    EQREL_1:def 4;
    
        reconsider x2 as
    Element of Y by 
    A1,
    A3;
    
        
    
        
    
    A5: x1 
    in ( 
    EqClass (x1,PA)) & ( 
    EqClass (x2,PA)) 
    = F by 
    A1,
    A3,
    EQREL_1:def 6;
    
        per cases ;
    
          suppose
    
          
    
    A6: for x be 
    Element of Y st x 
    in ( 
    EqClass (x1,PA)) holds (a 
    . x) 
    =  
    TRUE ; 
    
          then ((
    B_INF (a,PA)) 
    . x1) 
    =  
    TRUE by 
    Def16;
    
          hence thesis by
    A2,
    A4,
    A5,
    A6,
    Def16,
    XBOOLE_0: 3;
    
        end;
    
          suppose
    
          
    
    A7: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (x1,PA)) holds (a 
    . x) 
    =  
    TRUE ); 
    
          then ((
    B_INF (a,PA)) 
    . x1) 
    =  
    FALSE by 
    Def16;
    
          hence thesis by
    A2,
    A4,
    A5,
    A7,
    Def16,
    XBOOLE_0: 3;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:31
    
    for a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds ( 
    B_SUP (a,PA)) 
    is_dependent_of PA 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      for F be
    set st F 
    in PA holds for x1,x2 be 
    set st x1 
    in F & x2 
    in F holds (( 
    B_SUP (a,PA)) 
    . x1) 
    = (( 
    B_SUP (a,PA)) 
    . x2) 
    
      proof
    
        let F be
    set;
    
        assume
    
        
    
    A1: F 
    in PA; 
    
        let x1,x2 be
    set;
    
        assume
    
        
    
    A2: x1 
    in F & x2 
    in F; 
    
        then
    
        reconsider x1, x2 as
    Element of Y by 
    A1;
    
        
    
        
    
    A3: x1 
    in ( 
    EqClass (x1,PA)) by 
    EQREL_1:def 6;
    
        (
    EqClass (x1,PA)) 
    = F or ( 
    EqClass (x1,PA)) 
    misses F by 
    A1,
    EQREL_1:def 4;
    
        then
    
        
    
    A4: ( 
    EqClass (x2,PA)) 
    = ( 
    EqClass (x1,PA)) by 
    A2,
    A3,
    EQREL_1:def 6,
    XBOOLE_0: 3;
    
        per cases ;
    
          suppose
    
          
    
    A5: ex x be 
    Element of Y st x 
    in ( 
    EqClass (x1,PA)) & (a 
    . x) 
    =  
    TRUE ; 
    
          then ((
    B_SUP (a,PA)) 
    . x1) 
    =  
    TRUE by 
    Def17;
    
          hence thesis by
    A4,
    A5,
    Def17;
    
        end;
    
          suppose
    
          
    
    A6: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (x1,PA)) & (a 
    . x) 
    =  
    TRUE ); 
    
          then ((
    B_SUP (a,PA)) 
    . x1) 
    =  
    FALSE by 
    Def17;
    
          hence thesis by
    A4,
    A6,
    Def17;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:32
    
    for a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds ( 
    B_INF (a,PA)) 
    '<' a 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      ((
    B_INF (a,PA)) 
    'imp' a) 
    = ( 
    I_el Y) 
    
      proof
    
        let y be
    Element of Y; 
    
        per cases ;
    
          suppose
    
          
    
    A1: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ; 
    
          
    
          
    
    A2: (a 
    . y) 
    =  
    TRUE by 
    A1,
    EQREL_1:def 6;
    
          (
    'not' (( 
    B_INF (a,PA)) 
    . y)) 
    = (( 
    'not' ( 
    B_INF (a,PA))) 
    . y) by 
    MARGREL1:def 19;
    
          
    
          then ((
    'not' (( 
    B_INF (a,PA)) 
    . y)) 
    'or' (a 
    . y)) 
    = ((( 
    'not' ( 
    B_INF (a,PA))) 
    . y) 
    'or' (( 
    I_el Y) 
    . y)) by 
    A2,
    Def11
    
          .= (((
    'not' ( 
    B_INF (a,PA))) 
    'or' ( 
    I_el Y)) 
    . y) by 
    Def4
    
          .= ((
    I_el Y) 
    . y) by 
    Th9;
    
          hence thesis by
    Def8;
    
        end;
    
          suppose not (for x be
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ); 
    
          then ((
    B_INF (a,PA)) 
    . y) 
    =  
    FALSE by 
    Def16;
    
          
    
          then ((
    'not' (( 
    B_INF (a,PA)) 
    . y)) 
    'or' (a 
    . y)) 
    = ((( 
    I_el Y) 
    . y) 
    'or' (a 
    . y)) by 
    Def11
    
          .= (((
    I_el Y) 
    'or' a) 
    . y) by 
    Def4
    
          .= ((
    I_el Y) 
    . y) by 
    Th9;
    
          hence thesis by
    Def8;
    
        end;
    
      end;
    
      hence thesis by
    Th15;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:33
    
    for a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds a 
    '<' ( 
    B_SUP (a,PA)) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      (a
    'imp' ( 
    B_SUP (a,PA))) 
    = ( 
    I_el Y) 
    
      proof
    
        let y be
    Element of Y; 
    
        per cases ;
    
          suppose ex x be
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ; 
    
          then ((
    B_SUP (a,PA)) 
    . y) 
    =  
    TRUE by 
    Def17;
    
          then ((
    B_SUP (a,PA)) 
    . y) 
    = (( 
    I_el Y) 
    . y) by 
    Def11;
    
          
    
          then ((
    'not' (a 
    . y)) 
    'or' (( 
    B_SUP (a,PA)) 
    . y)) 
    = ((( 
    'not' a) 
    . y) 
    'or' (( 
    I_el Y) 
    . y)) by 
    MARGREL1:def 19
    
          .= (((
    'not' a) 
    'or' ( 
    I_el Y)) 
    . y) by 
    Def4
    
          .= ((
    I_el Y) 
    . y) by 
    Th9;
    
          hence thesis by
    Def8;
    
        end;
    
          suppose
    
          
    
    A1: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ); 
    
          (a
    . y) 
    <>  
    TRUE by 
    A1,
    EQREL_1:def 6;
    
          then (a
    . y) 
    =  
    FALSE by 
    XBOOLEAN:def 3;
    
          
    
          then ((
    'not' (a 
    . y)) 
    'or' (( 
    B_SUP (a,PA)) 
    . y)) 
    = ((( 
    I_el Y) 
    . y) 
    'or' (( 
    B_SUP (a,PA)) 
    . y)) by 
    Def11
    
          .= (((
    I_el Y) 
    'or' ( 
    B_SUP (a,PA))) 
    . y) by 
    Def4
    
          .= ((
    I_el Y) 
    . y) by 
    Th9;
    
          hence thesis by
    Def8;
    
        end;
    
      end;
    
      hence thesis by
    Th15;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:34
    
    for a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds ( 
    'not' ( 
    B_INF (a,PA))) 
    = ( 
    B_SUP (( 
    'not' a),PA)) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      let y be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        assume that
    
        
    
    A2: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE and 
    
        
    
    A3: ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (( 
    'not' a) 
    . x) 
    =  
    TRUE ; 
    
        consider x1 be
    Element of Y such that 
    
        
    
    A4: x1 
    in ( 
    EqClass (y,PA)) and 
    
        
    
    A5: (( 
    'not' a) 
    . x1) 
    =  
    TRUE by 
    A3;
    
        ((
    'not' ( 
    'not' a)) 
    . x1) 
    = ( 
    'not'  
    TRUE ) by 
    A5,
    MARGREL1:def 19;
    
        hence contradiction by
    A2,
    A4;
    
      end;
    
      
    
    A6: 
    
      now
    
        assume that
    
        
    
    A7: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A8: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (( 
    'not' a) 
    . x) 
    =  
    TRUE ); 
    
        consider x1 be
    Element of Y such that 
    
        
    
    A9: x1 
    in ( 
    EqClass (y,PA)) and 
    
        
    
    A10: (a 
    . x1) 
    <>  
    TRUE by 
    A7;
    
        (a
    . x1) 
    =  
    FALSE by 
    A10,
    XBOOLEAN:def 3;
    
        then ((
    'not' a) 
    . x1) 
    = ( 
    'not'  
    FALSE ) by 
    MARGREL1:def 19;
    
        hence contradiction by
    A8,
    A9;
    
      end;
    
      
    
    A11: 
    
      now
    
        assume that
    
        
    
    A12: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A13: ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (( 
    'not' a) 
    . x) 
    =  
    TRUE ; 
    
        ((
    B_INF (a,PA)) 
    . y) 
    =  
    FALSE by 
    A12,
    Def16;
    
        then ((
    'not' ( 
    B_INF (a,PA))) 
    . y) 
    = ( 
    'not'  
    FALSE ) by 
    MARGREL1:def 19;
    
        hence thesis by
    A13,
    Def17;
    
      end;
    
      now
    
        assume that
    
        
    
    A14: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE and 
    
        
    
    A15: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (( 
    'not' a) 
    . x) 
    =  
    TRUE ); 
    
        ((
    B_INF (a,PA)) 
    . y) 
    =  
    TRUE by 
    A14,
    Def16;
    
        then ((
    'not' ( 
    B_INF (a,PA))) 
    . y) 
    = ( 
    'not'  
    TRUE ) by 
    MARGREL1:def 19;
    
        hence thesis by
    A15,
    Def17;
    
      end;
    
      hence thesis by
    A1,
    A11,
    A6;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:35
    
    for a be
    Function of Y, 
    BOOLEAN holds ( 
    B_INF (a,( 
    %O Y))) 
    = ( 
    B_INF a) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let y be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        (
    EqClass (y,( 
    %O Y))) 
    in ( 
    %O Y); 
    
        then (
    EqClass (y,( 
    %O Y))) 
    in  
    {Y} by
    PARTIT1:def 8;
    
        then
    
        
    
    A2: ( 
    EqClass (y,( 
    %O Y))) 
    = Y by 
    TARSKI:def 1;
    
        assume ( not (for x be
    Element of Y holds (a 
    . x) 
    =  
    TRUE )) & for x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %O Y))) holds (a 
    . x) 
    =  
    TRUE ; 
    
        hence contradiction by
    A2;
    
      end;
    
      
    
    A3: 
    
      now
    
        assume that
    
        
    
    A4: not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A5: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %O Y))) holds (a 
    . x) 
    =  
    TRUE ); 
    
        (
    B_INF a) 
    = ( 
    O_el Y) by 
    A4,
    Def13;
    
        then ((
    B_INF a) 
    . y) 
    =  
    FALSE by 
    Def10;
    
        hence thesis by
    A5,
    Def16;
    
      end;
    
      now
    
        assume that
    
        
    
    A6: for x be 
    Element of Y holds (a 
    . x) 
    =  
    TRUE and 
    
        
    
    A7: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %O Y))) holds (a 
    . x) 
    =  
    TRUE ; 
    
        (
    B_INF a) 
    = ( 
    I_el Y) by 
    A6,
    Def13;
    
        then ((
    B_INF a) 
    . y) 
    =  
    TRUE by 
    Def11;
    
        hence thesis by
    A7,
    Def16;
    
      end;
    
      hence thesis by
    A1,
    A3;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:36
    
    for a be
    Function of Y, 
    BOOLEAN holds ( 
    B_SUP (a,( 
    %O Y))) 
    = ( 
    B_SUP a) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let y be
    Element of Y; 
    
      (
    EqClass (y,( 
    %O Y))) 
    in ( 
    %O Y); 
    
      then (
    EqClass (y,( 
    %O Y))) 
    in  
    {Y} by
    PARTIT1:def 8;
    
      then
    
      
    
    A1: ( 
    EqClass (y,( 
    %O Y))) 
    = Y by 
    TARSKI:def 1;
    
      
    
    A2: 
    
      now
    
        assume that
    
        
    
    A3: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %O Y))) & (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A4: for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ; 
    
        (
    B_SUP a) 
    = ( 
    O_el Y) by 
    A4,
    Def14;
    
        then ((
    B_SUP a) 
    . y) 
    =  
    FALSE by 
    Def10;
    
        hence thesis by
    A3,
    Def17;
    
      end;
    
      now
    
        assume that
    
        
    
    A5: ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %O Y))) & (a 
    . x) 
    =  
    TRUE and not (for x be 
    Element of Y holds (a 
    . x) 
    =  
    FALSE ); 
    
        (
    B_SUP a) 
    = ( 
    I_el Y) by 
    A5,
    Def14;
    
        then ((
    B_SUP a) 
    . y) 
    =  
    TRUE by 
    Def11;
    
        hence thesis by
    A5,
    Def17;
    
      end;
    
      hence thesis by
    A2,
    A1,
    XBOOLEAN:def 3;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:37
    
    for a be
    Function of Y, 
    BOOLEAN holds ( 
    B_INF (a,( 
    %I Y))) 
    = a 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let y be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        (
    EqClass (y,( 
    %I Y))) 
    in ( 
    %I Y); 
    
        then (
    EqClass (y,( 
    %I Y))) 
    in { B : ex z be 
    set st B 
    =  
    {z} & z
    in Y } by 
    PARTIT1: 31;
    
        then ex B st (
    EqClass (y,( 
    %I Y))) 
    = B & ex z be 
    set st B 
    =  
    {z} & z
    in Y; 
    
        then
    
        consider z be
    set such that 
    
        
    
    A2: ( 
    EqClass (y,( 
    %I Y))) 
    =  
    {z} and z
    in Y; 
    
        
    
        
    
    A3: y 
    in  
    {z} by
    A2,
    EQREL_1:def 6;
    
        assume that
    
        
    
    A4: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %I Y))) holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A5: (a 
    . y) 
    =  
    TRUE ; 
    
        consider x1 be
    Element of Y such that 
    
        
    
    A6: x1 
    in ( 
    EqClass (y,( 
    %I Y))) and 
    
        
    
    A7: (a 
    . x1) 
    <>  
    TRUE by 
    A4;
    
        x1
    = z by 
    A6,
    A2,
    TARSKI:def 1;
    
        hence contradiction by
    A5,
    A7,
    A3,
    TARSKI:def 1;
    
      end;
    
      
    
    A8: 
    
      now
    
        assume
    
        
    
    A9: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %I Y))) holds (a 
    . x) 
    =  
    TRUE ; 
    
        then (a
    . y) 
    =  
    TRUE by 
    EQREL_1:def 6;
    
        hence thesis by
    A9,
    Def16;
    
      end;
    
      now
    
        assume that
    
        
    
    A10: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %I Y))) holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A11: (a 
    . y) 
    <>  
    TRUE ; 
    
        (a
    . y) 
    =  
    FALSE by 
    A11,
    XBOOLEAN:def 3;
    
        hence thesis by
    A10,
    Def16;
    
      end;
    
      hence thesis by
    A8,
    A1;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:38
    
    for a be
    Function of Y, 
    BOOLEAN holds ( 
    B_SUP (a,( 
    %I Y))) 
    = a 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      let y be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        (
    EqClass (y,( 
    %I Y))) 
    in ( 
    %I Y); 
    
        then (
    EqClass (y,( 
    %I Y))) 
    in { B : ex z be 
    set st B 
    =  
    {z} & z
    in Y } by 
    PARTIT1: 31;
    
        then ex B st (
    EqClass (y,( 
    %I Y))) 
    = B & ex z be 
    set st B 
    =  
    {z} & z
    in Y; 
    
        then
    
        consider z be
    set such that 
    
        
    
    A2: ( 
    EqClass (y,( 
    %I Y))) 
    =  
    {z} and z
    in Y; 
    
        
    
        
    
    A3: y 
    in  
    {z} by
    A2,
    EQREL_1:def 6;
    
        assume that
    
        
    
    A4: ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %I Y))) & (a 
    . x) 
    =  
    TRUE and 
    
        
    
    A5: (a 
    . y) 
    <>  
    TRUE ; 
    
        consider x1 be
    Element of Y such that 
    
        
    
    A6: x1 
    in ( 
    EqClass (y,( 
    %I Y))) and 
    
        
    
    A7: (a 
    . x1) 
    =  
    TRUE by 
    A4;
    
        x1
    = z by 
    A6,
    A2,
    TARSKI:def 1;
    
        hence contradiction by
    A5,
    A7,
    A3,
    TARSKI:def 1;
    
      end;
    
      
    
    A8: 
    
      now
    
        assume that
    
        
    
    A9: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,( 
    %I Y))) & (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A10: (a 
    . y) 
    <>  
    TRUE ; 
    
        (a
    . y) 
    =  
    FALSE by 
    A10,
    XBOOLEAN:def 3;
    
        hence thesis by
    A9,
    Def17;
    
      end;
    
      y
    in ( 
    EqClass (y,( 
    %I Y))) by 
    EQREL_1:def 6;
    
      hence thesis by
    A1,
    A8,
    Def17;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:39
    
    for a,b be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds ( 
    B_INF ((a 
    '&' b),PA)) 
    = (( 
    B_INF (a,PA)) 
    '&' ( 
    B_INF (b,PA))) 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      let y be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        assume that for x be
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE and 
    
        
    
    A2: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (b 
    . x) 
    =  
    TRUE ); 
    
        ((
    B_INF (b,PA)) 
    . y) 
    =  
    FALSE by 
    A2,
    Def16;
    
        then (((
    B_INF (a,PA)) 
    . y) 
    '&' (( 
    B_INF (b,PA)) 
    . y)) 
    =  
    FALSE ; 
    
        then
    
        
    
    A3: ((( 
    B_INF (a,PA)) 
    '&' ( 
    B_INF (b,PA))) 
    . y) 
    =  
    FALSE by 
    MARGREL1:def 20;
    
        consider x1 be
    Element of Y such that 
    
        
    
    A4: x1 
    in ( 
    EqClass (y,PA)) and 
    
        
    
    A5: (b 
    . x1) 
    <>  
    TRUE by 
    A2;
    
        (b
    . x1) 
    =  
    FALSE by 
    A5,
    XBOOLEAN:def 3;
    
        then ((a
    . x1) 
    '&' (b 
    . x1)) 
    =  
    FALSE ; 
    
        then ((a
    '&' b) 
    . x1) 
    <>  
    TRUE by 
    MARGREL1:def 20;
    
        hence thesis by
    A4,
    A3,
    Def16;
    
      end;
    
      
    
    A6: 
    
      now
    
        assume that
    
        
    
    A7: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A8: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (b 
    . x) 
    =  
    TRUE ); 
    
        ((
    B_INF (b,PA)) 
    . y) 
    =  
    FALSE by 
    A8,
    Def16;
    
        then (((
    B_INF (a,PA)) 
    . y) 
    '&' (( 
    B_INF (b,PA)) 
    . y)) 
    =  
    FALSE ; 
    
        then
    
        
    
    A9: ((( 
    B_INF (a,PA)) 
    '&' ( 
    B_INF (b,PA))) 
    . y) 
    =  
    FALSE by 
    MARGREL1:def 20;
    
        consider xa be
    Element of Y such that 
    
        
    
    A10: xa 
    in ( 
    EqClass (y,PA)) and 
    
        
    
    A11: (a 
    . xa) 
    <>  
    TRUE by 
    A7;
    
        (a
    . xa) 
    =  
    FALSE by 
    A11,
    XBOOLEAN:def 3;
    
        then ((a
    . xa) 
    '&' (b 
    . xa)) 
    =  
    FALSE ; 
    
        then ((a
    '&' b) 
    . xa) 
    <>  
    TRUE by 
    MARGREL1:def 20;
    
        hence thesis by
    A10,
    A9,
    Def16;
    
      end;
    
      
    
    A12: 
    
      now
    
        assume that
    
        
    
    A13: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE and 
    
        
    
    A14: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (b 
    . x) 
    =  
    TRUE ; 
    
        
    
        
    
    A15: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds ((a 
    '&' b) 
    . x) 
    =  
    TRUE  
    
        proof
    
          let x be
    Element of Y; 
    
          assume
    
          
    
    A16: x 
    in ( 
    EqClass (y,PA)); 
    
          then (b
    . x) 
    =  
    TRUE by 
    A14;
    
          then ((a
    . x) 
    '&' (b 
    . x)) 
    = ( 
    TRUE  
    '&'  
    TRUE ) by 
    A13,
    A16;
    
          hence thesis by
    MARGREL1:def 20;
    
        end;
    
        ((
    B_INF (b,PA)) 
    . y) 
    =  
    TRUE by 
    A14,
    Def16;
    
        then (((
    B_INF (a,PA)) 
    . y) 
    '&' (( 
    B_INF (b,PA)) 
    . y)) 
    = ( 
    TRUE  
    '&'  
    TRUE ) by 
    A13,
    Def16;
    
        then (((
    B_INF (a,PA)) 
    '&' ( 
    B_INF (b,PA))) 
    . y) 
    =  
    TRUE by 
    MARGREL1:def 20;
    
        hence thesis by
    A15,
    Def16;
    
      end;
    
      now
    
        assume that
    
        
    
    A17: not (for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (a 
    . x) 
    =  
    TRUE ) and 
    
        
    
    A18: for x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) holds (b 
    . x) 
    =  
    TRUE ; 
    
        ((
    B_INF (b,PA)) 
    . y) 
    =  
    TRUE by 
    A18,
    Def16;
    
        then (((
    B_INF (a,PA)) 
    . y) 
    '&' (( 
    B_INF (b,PA)) 
    . y)) 
    = ( 
    FALSE  
    '&'  
    TRUE ) by 
    A17,
    Def16;
    
        then
    
        
    
    A19: ((( 
    B_INF (a,PA)) 
    '&' ( 
    B_INF (b,PA))) 
    . y) 
    =  
    FALSE by 
    MARGREL1:def 20;
    
        consider x1 be
    Element of Y such that 
    
        
    
    A20: x1 
    in ( 
    EqClass (y,PA)) and 
    
        
    
    A21: (a 
    . x1) 
    <>  
    TRUE by 
    A17;
    
        (a
    . x1) 
    =  
    FALSE by 
    A21,
    XBOOLEAN:def 3;
    
        then ((a
    . x1) 
    '&' (b 
    . x1)) 
    =  
    FALSE ; 
    
        then ((a
    '&' b) 
    . x1) 
    <>  
    TRUE by 
    MARGREL1:def 20;
    
        hence thesis by
    A20,
    A19,
    Def16;
    
      end;
    
      hence thesis by
    A12,
    A1,
    A6;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:40
    
    for a,b be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y holds ( 
    B_SUP ((a 
    'or' b),PA)) 
    = (( 
    B_SUP (a,PA)) 
    'or' ( 
    B_SUP (b,PA))) 
    
    proof
    
      let a,b be
    Function of Y, 
    BOOLEAN ; 
    
      let PA be
    a_partition of Y; 
    
      let y be
    Element of Y; 
    
      
    
    A1: 
    
      now
    
        assume
    
        
    
    A2: ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & ((a 
    'or' b) 
    . x) 
    =  
    TRUE ; 
    
        then
    
        consider x1 be
    Element of Y such that 
    
        
    
    A3: x1 
    in ( 
    EqClass (y,PA)) and 
    
        
    
    A4: ((a 
    'or' b) 
    . x1) 
    =  
    TRUE ; 
    
        
    
        
    
    A5: (a 
    . x1) 
    =  
    FALSE & (b 
    . x1) 
    =  
    FALSE or (a 
    . x1) 
    =  
    FALSE & (b 
    . x1) 
    =  
    TRUE or (a 
    . x1) 
    =  
    TRUE & (b 
    . x1) 
    =  
    FALSE or (a 
    . x1) 
    =  
    TRUE & (b 
    . x1) 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        
    
        
    
    A6: ((a 
    . x1) 
    'or' (b 
    . x1)) 
    =  
    TRUE by 
    A4,
    Def4;
    
        now
    
          per cases by
    A6,
    A5;
    
            case (a
    . x1) 
    =  
    FALSE & (b 
    . x1) 
    =  
    TRUE ; 
    
            then ((
    B_SUP (b,PA)) 
    . y) 
    =  
    TRUE by 
    A3,
    Def17;
    
            then (((
    B_SUP (a,PA)) 
    . y) 
    'or' (( 
    B_SUP (b,PA)) 
    . y)) 
    =  
    TRUE ; 
    
            then (((
    B_SUP (a,PA)) 
    'or' ( 
    B_SUP (b,PA))) 
    . y) 
    =  
    TRUE by 
    Def4;
    
            hence thesis by
    A2,
    Def17;
    
          end;
    
            case (a
    . x1) 
    =  
    TRUE & (b 
    . x1) 
    =  
    FALSE ; 
    
            then ((
    B_SUP (a,PA)) 
    . y) 
    =  
    TRUE by 
    A3,
    Def17;
    
            then (((
    B_SUP (a,PA)) 
    . y) 
    'or' (( 
    B_SUP (b,PA)) 
    . y)) 
    =  
    TRUE ; 
    
            then (((
    B_SUP (a,PA)) 
    'or' ( 
    B_SUP (b,PA))) 
    . y) 
    =  
    TRUE by 
    Def4;
    
            hence thesis by
    A2,
    Def17;
    
          end;
    
            case (a
    . x1) 
    =  
    TRUE & (b 
    . x1) 
    =  
    TRUE ; 
    
            then ((
    B_SUP (b,PA)) 
    . y) 
    =  
    TRUE by 
    A3,
    Def17;
    
            then (((
    B_SUP (a,PA)) 
    . y) 
    'or' (( 
    B_SUP (b,PA)) 
    . y)) 
    =  
    TRUE ; 
    
            then (((
    B_SUP (a,PA)) 
    'or' ( 
    B_SUP (b,PA))) 
    . y) 
    =  
    TRUE by 
    Def4;
    
            hence thesis by
    A2,
    Def17;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      now
    
        assume
    
        
    
    A7: not (ex x be 
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & ((a 
    'or' b) 
    . x) 
    =  
    TRUE ); 
    
        now
    
          assume ex x be
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (b 
    . x) 
    =  
    TRUE ; 
    
          then
    
          consider x1 be
    Element of Y such that 
    
          
    
    A8: x1 
    in ( 
    EqClass (y,PA)) and 
    
          
    
    A9: (b 
    . x1) 
    =  
    TRUE ; 
    
          ((a
    . x1) 
    'or' (b 
    . x1)) 
    =  
    TRUE by 
    A9;
    
          then ((a
    'or' b) 
    . x1) 
    =  
    TRUE by 
    Def4;
    
          hence contradiction by
    A7,
    A8;
    
        end;
    
        then
    
        
    
    A10: (( 
    B_SUP (b,PA)) 
    . y) 
    =  
    FALSE by 
    Def17;
    
        now
    
          assume ex x be
    Element of Y st x 
    in ( 
    EqClass (y,PA)) & (a 
    . x) 
    =  
    TRUE ; 
    
          then
    
          consider x1 be
    Element of Y such that 
    
          
    
    A11: x1 
    in ( 
    EqClass (y,PA)) and 
    
          
    
    A12: (a 
    . x1) 
    =  
    TRUE ; 
    
          ((a
    . x1) 
    'or' (b 
    . x1)) 
    =  
    TRUE by 
    A12;
    
          then ((a
    'or' b) 
    . x1) 
    =  
    TRUE by 
    Def4;
    
          hence contradiction by
    A7,
    A11;
    
        end;
    
        then (((
    B_SUP (a,PA)) 
    . y) 
    'or' (( 
    B_SUP (b,PA)) 
    . y)) 
    = ( 
    FALSE  
    'or'  
    FALSE ) by 
    A10,
    Def17;
    
        then (((
    B_SUP (a,PA)) 
    'or' ( 
    B_SUP (b,PA))) 
    . y) 
    =  
    FALSE by 
    Def4;
    
        hence thesis by
    A7,
    Def17;
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    definition
    
      let Y;
    
      let f be
    Function of Y, 
    BOOLEAN ; 
    
      :: 
    
    BVFUNC_1:def18
    
      func
    
    GPart (f) -> 
    a_partition of Y equals ( 
    {{ x where x be 
    Element of Y : (f 
    . x) 
    =  
    TRUE }, { x9 where x9 be 
    Element of Y : (f 
    . x9) 
    =  
    FALSE }} 
    \  
    {
    {} }); 
    
      correctness
    
      proof
    
        defpred
    
    P[
    set] means (f
    . $1) 
    =  
    TRUE ; 
    
        reconsider C = { x where x be
    Element of Y : 
    P[x] } as
    Subset of Y from 
    DOMAIN_1:sch 7;
    
        defpred
    
    P[
    set] means (f
    . $1) 
    =  
    FALSE ; 
    
        reconsider D = { x9 where x9 be
    Element of Y : 
    P[x9] } as
    Subset of Y from 
    DOMAIN_1:sch 7;
    
        
    
        
    
    A1: ( 
    union ( 
    {C, D}
    \  
    {
    {} })) 
    = Y 
    
        proof
    
          thus (
    union ( 
    {C, D}
    \  
    {
    {} })) 
    c= Y 
    
          proof
    
            let a be
    object;
    
            assume a
    in ( 
    union ( 
    {C, D}
    \  
    {
    {} })); 
    
            then ex b be
    set st a 
    in b & b 
    in ( 
    {C, D}
    \  
    {
    {} }) by 
    TARSKI:def 4;
    
            then a
    in C or a 
    in D by 
    TARSKI:def 2;
    
            hence thesis;
    
          end;
    
          let a be
    object;
    
          
    
          
    
    A2: C 
    in  
    {C, D} by
    TARSKI:def 2;
    
          assume a
    in Y; 
    
          then
    
          reconsider a as
    Element of Y; 
    
          
    
          
    
    A3: (f 
    . a) 
    =  
    TRUE or (f 
    . a) 
    =  
    FALSE by 
    TARSKI:def 2;
    
          
    
          
    
    A4: D 
    in  
    {C, D} by
    TARSKI:def 2;
    
          per cases by
    A3;
    
            suppose
    
            
    
    A5: a 
    in C; 
    
            then not C
    in  
    {
    {} } by 
    TARSKI:def 1;
    
            then C
    in ( 
    {C, D}
    \  
    {
    {} }) by 
    A2,
    XBOOLE_0:def 5;
    
            hence thesis by
    A5,
    TARSKI:def 4;
    
          end;
    
            suppose
    
            
    
    A6: a 
    in D; 
    
            then not D
    in  
    {
    {} } by 
    TARSKI:def 1;
    
            then D
    in ( 
    {C, D}
    \  
    {
    {} }) by 
    A4,
    XBOOLE_0:def 5;
    
            hence thesis by
    A6,
    TARSKI:def 4;
    
          end;
    
        end;
    
        
    
        
    
    A7: for A be 
    Subset of Y st A 
    in ( 
    {C, D}
    \  
    {
    {} }) holds A 
    <>  
    {} & for B be 
    Subset of Y st B 
    in ( 
    {C, D}
    \  
    {
    {} }) holds A 
    = B or A 
    misses B 
    
        proof
    
          let A be
    Subset of Y; 
    
          
    
    A8: 
    
          now
    
            given b be
    object such that 
    
            
    
    A9: b 
    in C & b 
    in D; 
    
            now
    
              assume b
    in C; 
    
              then
    
              
    
    A10: ex x be 
    Element of Y st b 
    = x & (f 
    . x) 
    =  
    TRUE ; 
    
              now
    
                assume b
    in D; 
    
                then ex x9 be
    Element of Y st b 
    = x9 & (f 
    . x9) 
    =  
    FALSE ; 
    
                hence contradiction by
    A10;
    
              end;
    
              hence not b
    in D; 
    
            end;
    
            hence contradiction by
    A9;
    
          end;
    
          assume
    
          
    
    A11: A 
    in ( 
    {C, D}
    \  
    {
    {} }); 
    
          then not A
    in  
    {
    {} } by 
    XBOOLE_0:def 5;
    
          hence A
    <>  
    {} by 
    TARSKI:def 1;
    
          let B be
    Subset of Y; 
    
          assume
    
          
    
    A12: B 
    in ( 
    {C, D}
    \  
    {
    {} }); 
    
          per cases by
    A11,
    A12,
    TARSKI:def 2;
    
            suppose A
    = C & B 
    = C; 
    
            hence thesis;
    
          end;
    
            suppose A
    = D & B 
    = D; 
    
            hence thesis;
    
          end;
    
            suppose A
    = C & B 
    = D; 
    
            hence thesis by
    A8,
    XBOOLE_0: 3;
    
          end;
    
            suppose A
    = D & B 
    = C; 
    
            hence thesis by
    A8,
    XBOOLE_0: 3;
    
          end;
    
        end;
    
        (
    {C, D}
    \  
    {
    {} }) 
    c= ( 
    bool Y) 
    
        proof
    
          let a be
    object;
    
          assume a
    in ( 
    {C, D}
    \  
    {
    {} }); 
    
          then a
    = C or a 
    = D by 
    TARSKI:def 2;
    
          hence thesis;
    
        end;
    
        hence thesis by
    A1,
    A7,
    EQREL_1:def 4;
    
      end;
    
    end
    
    theorem :: 
    
    BVFUNC_1:41
    
    for a be
    Function of Y, 
    BOOLEAN holds a 
    is_dependent_of ( 
    GPart a) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN ; 
    
      defpred
    
    P[
    set] means (a
    . $1) 
    =  
    TRUE ; 
    
      reconsider C = { x where x be
    Element of Y : 
    P[x] } as
    Subset of Y from 
    DOMAIN_1:sch 7;
    
      defpred
    
    P[
    set] means (a
    . $1) 
    =  
    FALSE ; 
    
      reconsider D = { x9 where x9 be
    Element of Y : 
    P[x9] } as
    Subset of Y from 
    DOMAIN_1:sch 7;
    
      for F be
    set st F 
    in ( 
    GPart a) holds for x1,x2 be 
    set st x1 
    in F & x2 
    in F holds (a 
    . x1) 
    = (a 
    . x2) 
    
      proof
    
        let F be
    set;
    
        assume
    
        
    
    A1: F 
    in ( 
    GPart a); 
    
        thus for x1,x2 be
    set st x1 
    in F & x2 
    in F holds (a 
    . x1) 
    = (a 
    . x2) 
    
        proof
    
          let x1,x2 be
    set;
    
          assume
    
          
    
    A2: x1 
    in F & x2 
    in F; 
    
          then
    
          reconsider x1, x2 as
    Element of Y by 
    A1;
    
          now
    
            per cases by
    A1,
    TARSKI:def 2;
    
              case F
    = C; 
    
              then (ex x be
    Element of Y st x 
    = x1 & (a 
    . x) 
    =  
    TRUE ) & ex x5 be 
    Element of Y st x5 
    = x2 & (a 
    . x5) 
    =  
    TRUE by 
    A2;
    
              hence thesis;
    
            end;
    
              case F
    = D; 
    
              then (ex x be
    Element of Y st x 
    = x1 & (a 
    . x) 
    =  
    FALSE ) & ex x5 be 
    Element of Y st x5 
    = x2 & (a 
    . x5) 
    =  
    FALSE by 
    A2;
    
              hence thesis;
    
            end;
    
          end;
    
          hence thesis;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    BVFUNC_1:42
    
    for a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y st a 
    is_dependent_of PA holds PA 
    is_finer_than ( 
    GPart a) 
    
    proof
    
      let a be
    Function of Y, 
    BOOLEAN , PA be 
    a_partition of Y; 
    
      defpred
    
    P[
    set] means (a
    . $1) 
    =  
    TRUE ; 
    
      reconsider C = { x where x be
    Element of Y : 
    P[x] } as
    Subset of Y from 
    DOMAIN_1:sch 7;
    
      defpred
    
    P[
    set] means (a
    . $1) 
    =  
    FALSE ; 
    
      reconsider D = { x9 where x9 be
    Element of Y : 
    P[x9] } as
    Subset of Y from 
    DOMAIN_1:sch 7;
    
      assume
    
      
    
    A1: a 
    is_dependent_of PA; 
    
      for g be
    set st g 
    in PA holds ex h be 
    set st h 
    in ( 
    GPart a) & g 
    c= h 
    
      proof
    
        let g be
    set;
    
        set u = the
    Element of g; 
    
        assume
    
        
    
    A2: g 
    in PA; 
    
        then
    
        
    
    A3: g 
    <>  
    {} by 
    EQREL_1:def 4;
    
        then u
    in g; 
    
        then
    
        reconsider u as
    Element of Y by 
    A2;
    
        
    
        
    
    A4: for x1 be 
    set st x1 
    in g holds (a 
    . x1) 
    =  
    TRUE or (a 
    . x1) 
    =  
    FALSE  
    
        proof
    
          let x1 be
    set;
    
          assume x1
    in g; 
    
          then
    
          reconsider x1 as
    Element of Y by 
    A2;
    
          (a
    . x1) 
    in  
    BOOLEAN ; 
    
          hence thesis by
    TARSKI:def 2;
    
        end;
    
        now
    
          per cases by
    A3,
    A4;
    
            case
    
            
    
    A5: (a 
    . u) 
    =  
    TRUE ; 
    
            
    
            
    
    A6: g 
    c= C 
    
            proof
    
              let t be
    object;
    
              assume
    
              
    
    A7: t 
    in g; 
    
              then
    
              reconsider t as
    Element of Y by 
    A2;
    
              now
    
                per cases by
    A4,
    A7;
    
                  case (a
    . t) 
    =  
    TRUE ; 
    
                  hence thesis;
    
                end;
    
                  case (a
    . t) 
    =  
    FALSE ; 
    
                  hence contradiction by
    A1,
    A2,
    A5,
    A7;
    
                end;
    
              end;
    
              hence thesis;
    
            end;
    
            u
    in C by 
    A5;
    
            then
    
            
    
    A8: not C 
    in  
    {
    {} } by 
    TARSKI:def 1;
    
            C
    in  
    {C, D} by
    TARSKI:def 2;
    
            then C
    in ( 
    {C, D}
    \  
    {
    {} }) by 
    A8,
    XBOOLE_0:def 5;
    
            hence thesis by
    A6;
    
          end;
    
            case
    
            
    
    A9: (a 
    . u) 
    =  
    FALSE ; 
    
            
    
            
    
    A10: g 
    c= D 
    
            proof
    
              let t be
    object;
    
              assume
    
              
    
    A11: t 
    in g; 
    
              then
    
              reconsider t as
    Element of Y by 
    A2;
    
              now
    
                per cases by
    A4,
    A11;
    
                  case (a
    . t) 
    =  
    TRUE ; 
    
                  hence contradiction by
    A1,
    A2,
    A9,
    A11;
    
                end;
    
                  case (a
    . t) 
    =  
    FALSE ; 
    
                  hence thesis;
    
                end;
    
              end;
    
              hence thesis;
    
            end;
    
            u
    in D by 
    A9;
    
            then
    
            
    
    A12: not D 
    in  
    {
    {} } by 
    TARSKI:def 1;
    
            D
    in  
    {C, D} by
    TARSKI:def 2;
    
            then D
    in ( 
    {C, D}
    \  
    {
    {} }) by 
    A12,
    XBOOLE_0:def 5;
    
            hence thesis by
    A10;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis by
    SETFAM_1:def 2;
    
    end;
    
    begin
    
    definition
    
      let x,y be
    Element of 
    BOOLEAN ; 
    
      :: original:
    'nand'
    
      redefine
    
      func x
    
    'nand' y -> 
    Element of 
    BOOLEAN ; 
    
      correctness
    
      proof
    
        (x
    'nand' y) 
    =  
    FALSE or (x 
    'nand' y) 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let x,y be
    Element of 
    BOOLEAN ; 
    
      :: original:
    'nor'
    
      redefine
    
      func x
    
    'nor' y -> 
    Element of 
    BOOLEAN ; 
    
      correctness
    
      proof
    
        (x
    'nor' y) 
    =  
    FALSE or (x 
    'nor' y) 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let x,y be
    boolean  
    object;
    
      :: original:
    <=>
    
      redefine
    
      :: 
    
    BVFUNC_1:def19
    
      func x
    
    <=> y equals ( 
    'not' (x 
    'xor' y)); 
    
      correctness ;
    
    end
    
    definition
    
      let x,y be
    Element of 
    BOOLEAN ; 
    
      :: original:
    <=>
    
      redefine
    
      func x
    
    <=> y -> 
    Element of 
    BOOLEAN ; 
    
      correctness
    
      proof
    
        (x
    <=> y) 
    =  
    FALSE or (x 
    <=> y) 
    =  
    TRUE by 
    XBOOLEAN:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    reserve x,y,z for
    boolean  
    object;
    
    theorem :: 
    
    BVFUNC_1:43
    
    (
    TRUE  
    'nand' x) 
    = ( 
    'not' x); 
    
    theorem :: 
    
    BVFUNC_1:44
    
    (
    FALSE  
    'nand' x) 
    =  
    TRUE ; 
    
    theorem :: 
    
    BVFUNC_1:45
    
    (x
    'nand' x) 
    = ( 
    'not' x) & ( 
    'not' (x 
    'nand' x)) 
    = x; 
    
    theorem :: 
    
    BVFUNC_1:46
    
    (
    'not' (x 
    'nand' y)) 
    = (x 
    '&' y); 
    
    theorem :: 
    
    BVFUNC_1:47
    
    (x
    'nand' ( 
    'not' x)) 
    =  
    TRUE & ( 
    'not' (x 
    'nand' ( 
    'not' x))) 
    =  
    FALSE by 
    XBOOLEAN: 135,
    XBOOLEAN: 138;
    
    theorem :: 
    
    BVFUNC_1:48
    
    (x
    'nand' (y 
    '&' z)) 
    = ( 
    'not' ((x 
    '&' y) 
    '&' z)); 
    
    theorem :: 
    
    BVFUNC_1:49
    
    (x
    'nand' (y 
    '&' z)) 
    = ((x 
    '&' y) 
    'nand' z); 
    
    theorem :: 
    
    BVFUNC_1:50
    
    (
    TRUE  
    'nor' x) 
    =  
    FALSE ; 
    
    theorem :: 
    
    BVFUNC_1:51
    
    (
    FALSE  
    'nor' x) 
    = ( 
    'not' x); 
    
    theorem :: 
    
    BVFUNC_1:52
    
    (x
    'nor' x) 
    = ( 
    'not' x) & ( 
    'not' (x 
    'nor' x)) 
    = x; 
    
    theorem :: 
    
    BVFUNC_1:53
    
    (
    'not' (x 
    'nor' y)) 
    = (x 
    'or' y); 
    
    theorem :: 
    
    BVFUNC_1:54
    
    (x
    'nor' ( 
    'not' x)) 
    =  
    FALSE & ( 
    'not' (x 
    'nor' ( 
    'not' x))) 
    =  
    TRUE by 
    XBOOLEAN: 134,
    XBOOLEAN: 138;
    
    theorem :: 
    
    BVFUNC_1:55
    
    (x
    'nor' (y 
    'or' z)) 
    = ( 
    'not' ((x 
    'or' y) 
    'or' z)); 
    
    theorem :: 
    
    BVFUNC_1:56
    
    (
    TRUE  
    <=> x) 
    = x; 
    
    theorem :: 
    
    BVFUNC_1:57
    
    (
    FALSE  
    <=> x) 
    = ( 
    'not' x); 
    
    theorem :: 
    
    BVFUNC_1:58
    
    (x
    <=> x) 
    =  
    TRUE & ( 
    'not' (x 
    <=> x)) 
    =  
    FALSE by 
    XBOOLEAN: 125,
    XBOOLEAN: 143;
    
    theorem :: 
    
    BVFUNC_1:59
    
    (
    'not' (x 
    <=> y)) 
    = (x 
    'xor' y); 
    
    theorem :: 
    
    BVFUNC_1:60
    
    (x
    <=> ( 
    'not' x)) 
    =  
    FALSE & ( 
    'not' (x 
    <=> ( 
    'not' x))) 
    =  
    TRUE by 
    XBOOLEAN: 129,
    XBOOLEAN: 142;
    
    theorem :: 
    
    BVFUNC_1:61
    
    x
    <= (y 
    => z) iff (x 
    '&' y) 
    <= z; 
    
    theorem :: 
    
    BVFUNC_1:62
    
    (x
    <=> y) 
    = ((x 
    => y) 
    '&' (y 
    => x)); 
    
    theorem :: 
    
    BVFUNC_1:63
    
    (x
    => y) 
    = (( 
    'not' y) 
    => ( 
    'not' x)); 
    
    theorem :: 
    
    BVFUNC_1:64
    
    (x
    <=> y) 
    = (( 
    'not' x) 
    <=> ( 
    'not' y)); 
    
    theorem :: 
    
    BVFUNC_1:65
    
    x
    =  
    TRUE & (x 
    => y) 
    =  
    TRUE implies y 
    =  
    TRUE ; 
    
    theorem :: 
    
    BVFUNC_1:66
    
    y
    =  
    TRUE implies (x 
    => y) 
    =  
    TRUE ; 
    
    theorem :: 
    
    BVFUNC_1:67
    
    (
    'not' x) 
    =  
    TRUE implies (x 
    => y) 
    =  
    TRUE ; 
    
    theorem :: 
    
    BVFUNC_1:68
    
    (z
    => (y 
    => x)) 
    =  
    TRUE implies (y 
    => (z 
    => x)) 
    =  
    TRUE ; 
    
    theorem :: 
    
    BVFUNC_1:69
    
    (z
    => (y 
    => x)) 
    =  
    TRUE & y 
    =  
    TRUE implies (z 
    => x) 
    =  
    TRUE ; 
    
    theorem :: 
    
    BVFUNC_1:70
    
    (z
    => (y 
    => x)) 
    =  
    TRUE & y 
    =  
    TRUE & z 
    =  
    TRUE implies x 
    =  
    TRUE ;