 reserve Omega for non empty set;
 reserve F for SigmaField of Omega;

theorem JA3:
  for RV being random_variable of F,Borel_Sets,
      K being Real,
      g2 being Function of Omega,REAL
     st g2=chi(((Omega-->K)-RV)"[.0,+infty.[,Omega) holds
    Put-Option(RV,K) = g2(#)((Omega-->K)-RV)
proof
 let RV be random_variable of F,Borel_Sets;
 let K be Real;
 let g2 be Function of Omega,REAL;
 assume K1: g2=chi(((Omega-->K)-RV)"[.0,+infty.[,Omega);
 set PO=Put-Option(RV,K);
 set RVO=(Omega-->K)-RV;
h1: dom g2=Omega & dom RVO=Omega & dom PO = Omega by FUNCT_2:def 1;
q1: dom PO = dom g2 /\ dom RVO & for c
     being object st c in dom PO holds PO.c = g2.c * RVO.c
   proof
    for c being object st c in dom PO holds PO.c = g2.c * RVO.c
    proof
     let c be object;
     assume c in dom PO;
     then reconsider c as Element of Omega;
     PO.c = g2.c * RVO.c
     proof
      per cases;
      suppose ASSJJ0: c in RVO"[.0,+infty.[;
  ZW0: g2. c =1 by K1,ASSJJ0,FUNCT_3:def 3;
       c in dom RVO & RVO.c in [.0,+infty.[ by ASSJJ0,FUNCT_1:def 7;
       then 0<=RVO.c & RVO. c <+infty by XXREAL_1:3;
       hence thesis by ZW0,Def30;
      end;
      suppose ASSJJ00: not c in RVO"[.0,+infty.[; then
      k1: c in Omega & not c in RVO"[.0,+infty.[;
      ASSJJ0: c in RVO"].-infty,0 .[
      proof
        not (c in dom RVO & RVO.c in [.0,+infty.[) by ASSJJ00,FUNCT_1:def 7;
        then not c in Omega or not RVO.c in [.0,+infty.[ by FUNCT_2:def 1;
        then RV.c in ].-infty,+infty.[ & -infty<RVO.c & RVO.c <0
          by XXREAL_1:224,XXREAL_0:12,XXREAL_0:9,XXREAL_1:3;
        then c in dom(RVO) & RVO.c in ].-infty,0 .[
          by k1,FUNCT_2:def 1,XXREAL_1:4;
        hence thesis by FUNCT_1:def 7;
      end;
ZW0:  g2. c =0 by K1,ASSJJ00,FUNCT_3:def 3;
      c in dom RVO & RVO.c in ].-infty,0 .[ by ASSJJ0,FUNCT_1:def 7;
      then -infty<RVO.c & RVO. c <0 by XXREAL_1:4;
      hence thesis by ZW0,Def30;
      end;
     end;
    hence thesis;
    end;
   hence thesis by h1;
   end;
   for x being object st x in dom PO holds PO.x = (g2(#)RVO).x
   proof
    let x be object;
    assume x in dom PO; then
    PO.x=g2.x*RVO.x by q1;
    hence thesis by VALUED_1:5;
   end;
  hence thesis by h1;
end;
