reserve F for Field;
reserve VS for strict VectSp of F;
reserve u,e for set;
reserve x for set;
reserve Z1 for set;

theorem
  for F being Field for A,B being strict VectSp of F for f be Function
of A,B st f is one-to-one additive homogeneous
 holds FuncLatt f is Homomorphism of lattice A,
  lattice B
proof
  let F be Field, A,B be strict VectSp of F, f be Function of A, B such that
A1: f is one-to-one additive homogeneous;
  for a,b being Element of lattice A holds (FuncLatt f).(a "\/" b) = (
  FuncLatt f).a "\/" (FuncLatt f).b & (FuncLatt f).(a "/\" b) = (FuncLatt f).a
  "/\" (FuncLatt f).b
  proof
    let a,b be Element of lattice A;
A2: (FuncLatt f).(a "/\" b) = (FuncLatt f).a "/\" (FuncLatt f).b
    proof
      reconsider b2 = (FuncLatt f).b as Element of lattice B;
      consider B1 being strict Subspace of A such that
A3:   B1 = b by VECTSP_5:def 3;
A4:   b2 = Lin(f.:the carrier of B1) by A3,Def7;
      0.A in B1 by VECTSP_4:17;
      then
A5:   0.A in the carrier of B1 by STRUCT_0:def 5;
      reconsider a2 = (FuncLatt f).a as Element of lattice B;
      consider A1 being strict Subspace of A such that
A6:   A1 = a by VECTSP_5:def 3;
      reconsider P = Lin(f.:the carrier of A1 /\ B1) as Subspace of B;
A7:   (FuncLatt f).(A1 /\ B1) = Lin(f.:the carrier of A1 /\ B1) by Def7;
      0.A in A1 by VECTSP_4:17;
      then
A8:   0.A in the carrier of A1 by STRUCT_0:def 5;
A9:   a2 = Lin(f.:the carrier of A1) by A6,Def7;
A10:  dom f = the carrier of A by FUNCT_2:def 1;
A11:  f.:the carrier of B1 is linearly-closed
      proof
        set BB = f.:the carrier of B1;
A12:    for v,u being Element of B st v in BB & u in BB holds v + u in BB
        proof
          let v,u be Element of B;
          assume that
A13:      v in BB and
A14:      u in BB;
          consider y being Element of A such that
A15:      y in the carrier of B1 and
A16:      u = f.y by A14,FUNCT_2:65;
A17:      y in B1 by A15,STRUCT_0:def 5;
          consider x being Element of A such that
A18:      x in the carrier of B1 and
A19:      v = f.x by A13,FUNCT_2:65;
          x in B1 by A18,STRUCT_0:def 5;
          then x + y in B1 by A17,VECTSP_4:20;
          then x + y in the carrier of B1 by STRUCT_0:def 5;
          then f.(x + y) in BB by FUNCT_2:35;
          hence thesis by A1,A19,A16,VECTSP_1:def 20;
        end;
        for a being Element of F, v being Element of B st v in BB holds a
        * v in BB
        proof
          let a be Element of F;
          let v be Element of B;
          assume v in BB;
          then consider x being Element of A such that
A20:      x in the carrier of B1 and
A21:      v = f.x by FUNCT_2:65;
          x in B1 by A20,STRUCT_0:def 5;
          then a * x in B1 by VECTSP_4:21;
          then a * x in the carrier of B1 by STRUCT_0:def 5;
          then f.(a * x) in BB by FUNCT_2:35;
          hence thesis by A1,A21,MOD_2:def 2;
        end;
        hence thesis by A12,VECTSP_4:def 1;
      end;
A22:  f.:the carrier of A1 is linearly-closed
      proof
        set BB = f.:the carrier of A1;
A23:    for v,u being Element of B st v in BB & u in BB holds v + u in BB
        proof
          let v,u be Element of B;
          assume that
A24:      v in BB and
A25:      u in BB;
          consider y being Element of A such that
A26:      y in the carrier of A1 and
A27:      u = f.y by A25,FUNCT_2:65;
A28:      y in A1 by A26,STRUCT_0:def 5;
          consider x being Element of A such that
A29:      x in the carrier of A1 and
A30:      v = f.x by A24,FUNCT_2:65;
          x in A1 by A29,STRUCT_0:def 5;
          then x + y in A1 by A28,VECTSP_4:20;
          then x + y in the carrier of A1 by STRUCT_0:def 5;
          then f.(x + y) in BB by FUNCT_2:35;
          hence thesis by A1,A30,A27,VECTSP_1:def 20;
        end;
        for a being Element of F, v being Element of B st v in BB holds a
        * v in BB
        proof
          let a be Element of F;
          let v be Element of B;
          assume v in BB;
          then consider x being Element of A such that
A31:      x in the carrier of A1 and
A32:      v = f.x by FUNCT_2:65;
          x in A1 by A31,STRUCT_0:def 5;
          then a * x in A1 by VECTSP_4:21;
          then a * x in the carrier of A1 by STRUCT_0:def 5;
          then f.(a * x) in BB by FUNCT_2:35;
          hence thesis by A1,A32,MOD_2:def 2;
        end;
        hence thesis by A23,VECTSP_4:def 1;
      end;
      ex y1 being Element of B st y1 = f.(0.A);
      then
A33:  f.:the carrier of B1 <> {} by A10,A5,FUNCT_1:def 6;
      then consider B3 being strict Subspace of B such that
A34:  the carrier of B3= f.:the carrier of B1 by A11,VECTSP_4:34;
A35:  Lin(f.:the carrier of B1) = B3 by A34,VECTSP_7:11;
      ex y being Element of B st y = f.(0.A);
      then
A36:  f.:the carrier of A1 <> {} by A10,A8,FUNCT_1:def 6;
      then consider A3 being strict Subspace of B such that
A37:  the carrier of A3 =f.:the carrier of A1 by A22,VECTSP_4:34;
      reconsider AB = A3 /\ B3 as Subspace of B;
A38:  Lin(f.:the carrier of A1) = A3 by A37,VECTSP_7:11;
A39:  f.:the carrier of A1 /\ B1 is linearly-closed
      proof
        set BB = f.:the carrier of A1 /\ B1;
A40:    for v,u being Element of B st v in BB & u in BB holds v + u in BB
        proof
          let v,u be Element of B;
          assume that
A41:      v in BB and
A42:      u in BB;
          consider y being Element of A such that
A43:      y in the carrier of A1 /\ B1 and
A44:      u = f.y by A42,FUNCT_2:65;
A45:      y in A1 /\ B1 by A43,STRUCT_0:def 5;
          consider x being Element of A such that
A46:      x in the carrier of A1 /\ B1 and
A47:      v = f.x by A41,FUNCT_2:65;
          x in A1 /\ B1 by A46,STRUCT_0:def 5;
          then x + y in A1 /\ B1 by A45,VECTSP_4:20;
          then x + y in the carrier of A1 /\ B1 by STRUCT_0:def 5;
          then f.(x + y) in BB by FUNCT_2:35;
          hence thesis by A1,A47,A44,VECTSP_1:def 20;
        end;
        for a being Element of F, v being Element of B st v in BB holds a
        * v in BB
        proof
          let a be Element of F;
          let v be Element of B;
          assume v in BB;
          then consider x being Element of A such that
A48:      x in the carrier of A1 /\ B1 and
A49:      v = f.x by FUNCT_2:65;
          x in A1 /\ B1 by A48,STRUCT_0:def 5;
          then a * x in A1 /\ B1 by VECTSP_4:21;
          then a * x in the carrier of A1 /\ B1 by STRUCT_0:def 5;
          then f.(a * x) in BB by FUNCT_2:35;
          hence thesis by A1,A49,MOD_2:def 2;
        end;
        hence thesis by A40,VECTSP_4:def 1;
      end;
A50:  the carrier of P c= the carrier of AB
      proof
A51:    the carrier of A3 /\ B3 c= f.:the carrier of A1 /\ B1
        proof
          let x be object;
          assume x in the carrier of A3 /\ B3;
          then
A52:      x in A3 /\ B3 by STRUCT_0:def 5;
          then
A53:      x in Lin(f.:the carrier of A1) by A38,VECTSP_5:3;
          then x in f.:the carrier of A1 by A36,A22,Th10;
          then reconsider x as Element of B;
          consider xa being Element of A such that
A54:      xa in the carrier of A1 and
A55:      x = f.xa by A36,A22,A53,Th10,FUNCT_2:65;
A56:      xa in A1 by A54,STRUCT_0:def 5;
          x in Lin(f.:the carrier of B1) by A35,A52,VECTSP_5:3;
          then consider xa1 being Element of A such that
A57:      xa1 in the carrier of B1 and
A58:      x = f.xa1 by A33,A11,Th10,FUNCT_2:65;
A59:      xa1 in B1 by A57,STRUCT_0:def 5;
          xa1 = xa by A1,A55,A58,FUNCT_2:19;
          then xa in A1 /\ B1 by A56,A59,VECTSP_5:3;
          then xa in the carrier of A1 /\ B1 by STRUCT_0:def 5;
          hence thesis by A55,FUNCT_2:35;
        end;
        let x be object;
        assume x in the carrier of P;
        then
A60:    x in P by STRUCT_0:def 5;
        f.:the carrier of A1 /\ B1 c= the carrier of A3 /\ B3
        proof
          let x be object;
          assume
A61:      x in f.:the carrier of A1 /\ B1;
          then reconsider x as Element of B;
          consider c being Element of A such that
A62:      c in the carrier of A1 /\ B1 and
A63:      x = f.c by A61,FUNCT_2:65;
A64:      c in A1 /\ B1 by A62,STRUCT_0:def 5;
          then c in B1 by VECTSP_5:3;
          then c in the carrier of B1 by STRUCT_0:def 5;
          then
A65:      f.c in Lin(f.:the carrier of B1) by FUNCT_2:35,VECTSP_7:8;
          c in A1 by A64,VECTSP_5:3;
          then c in the carrier of A1 by STRUCT_0:def 5;
          then f.c in Lin(f.:the carrier of A1) by FUNCT_2:35,VECTSP_7:8;
          then x in Lin(f.:the carrier of A1) /\ Lin(f.:the carrier of B1) by
A63,A65,VECTSP_5:3;
          hence thesis by A38,A35,STRUCT_0:def 5;
        end;
        then f.:the carrier of A1 /\ B1 = the carrier of A3 /\ B3 by A51,
XBOOLE_0:def 10;
        hence thesis by A39,A60,Th10;
      end;
      the carrier of AB c= the carrier of P
      proof
        let x be object;
        assume x in the carrier of AB;
        then
A66:    x in A3 /\ B3 by STRUCT_0:def 5;
        then x in Lin(f.:the carrier of B1) by A35,VECTSP_5:3;
        then consider xa1 being Element of A such that
A67:    xa1 in the carrier of B1 and
A68:    x = f.xa1 by A33,A11,Th10,FUNCT_2:65;
A69:    xa1 in B1 by A67,STRUCT_0:def 5;
        x in Lin(f.:the carrier of A1) by A38,A66,VECTSP_5:3;
        then x in f.:the carrier of A1 by A37,A38,STRUCT_0:def 5;
        then consider xa being Element of A such that
A70:    xa in the carrier of A1 and
A71:    x = f.xa by FUNCT_2:65;
A72:    xa in A1 by A70,STRUCT_0:def 5;
        xa1 = xa by A1,A71,A68,FUNCT_2:19;
        then xa in A1 /\ B1 by A72,A69,VECTSP_5:3;
        then xa in the carrier of A1 /\ B1 by STRUCT_0:def 5;
        then x in P by A71,FUNCT_2:35,VECTSP_7:8;
        hence thesis by STRUCT_0:def 5;
      end;
      then the carrier of AB = the carrier of P by A50,XBOOLE_0:def 10;
      then
A73:  P = AB by VECTSP_4:29;
      (FuncLatt f).(a "/\" b) =(FuncLatt f).(A1 /\ B1) by A6,A3,Th8;
      hence thesis by A9,A4,A7,A38,A35,A73,Th8;
    end;
    FuncLatt f is sup-Semilattice-Homomorphism of lattice A, lattice B by A1
,Th12;
    hence thesis by A2,LATTICE4:def 1;
  end;
  then FuncLatt f is "\/"-preserving "/\"-preserving;
  hence thesis;
end;
