Cantor-Bernstein theorem for $\sigma$-complete Boolean algebras. I am working on problem 7.28 from Jech's Set Theory:
Let A and B be σ-complete Boolean algebras. Let a and b be elements of A and B respectively.  If A is isomorphic to B$\upharpoonright$b and
B is isomorphic to A$\upharpoonright$a, then A and B are isomorphic.
The relevant version of the CSB theorem is:
Theorem 3.2 (Cantor-Bernstein). If |A|≤|B| and |B|≤|A|, then |A| = |B|.
Proof. If f:A → B and g:B → A are one-to-one, then if we let B = g(B) and $A_{1}$ = g(f(A)), we have $A_{1}$ ⊂ B ⊂ A and |$A_{1}$| = |A|. Thus
we may assume that $A_{1}$ ⊂ B ⊂ A and that f is a one-to-one function of A
onto $A_{1}$; we will show that |A| = |B|.
We deﬁne (by induction) for all n ∈ N:
$A_{0}$ = A, $A_{n+1}$ = f($A_{n}$),
$B_{0}$ = B, $B_{n+1}$ = f($B_{n}$).
Let h be the function on A deﬁned as follows:
h(x) = f(x)     if x ∈ $A_{n}$ −$B_{n}$ for some n,
       x        otherwise.
Then h is a one-to-one mapping of A onto B, as the reader will easily verify.
Thus |A| = |B|.
In my attempt to prove 7.28, I did not consider B as a subalgebra of A, so I used $B_{0}=ran(g)$ and I defined h by
h(x)=f(x), if x ∈ $A_{n}$ −$B_{n}$ for some n
h(x)=$g^{-1}$(x), otherwise.  
I copied this construction, letting f and g be isomorphic embedding from A to B and from B to A respectively, and with ran(f)=B$\upharpoonright$b and ran(g)=A$\upharpoonright$a.  I showed that the constructed function is 1-1 and surjective.  However, showing that + (or *) is preserved appears to break down into several cases, some of which are trivial and the rest of which have completely stumped me.
I would appreciate any suggestions, especially clever hints that do not explicitly spell out a solution.  
 A: Hint:It suffices to show that if $a,b\in A$ are such that there is an isomorphism $f:A\rightarrow A\upharpoonright a$ and $a\leq b$, then $A\simeq A\upharpoonright b$.
By recursion, define $a_0=1$, $b_0=b$, and $a_{n+1}=f(a_n)$ and $b_{n+1}=f(b_n)$. Put $c=\sum_{n<\omega} (a_n-b_n)$ and $c_1=\sum_{n=1}^\infty (a_n-b_n)$, notice that $c_1\leq a$, $c_1\leq c$ and $f(c)=c_1$.
Now define $g:A\longrightarrow A\upharpoonright b$ by $g(x)=f(x)\cdot c+x\cdot(-c)$, and notice that for all $x\leq b$ we have that $x\cdot c=x\cdot c_1$. Prove that $g$ is an isomorphism from $A$ onto $A\upharpoonright b$ (nontrivial). This is the simplest hint I could came up with, although it is not that trivial to continue from here.

However, if you cannot continue with the hint above, here is how it's done:

 To see $g$ is an homomorphism notice that it is clear that $g(x+y)=g(x)+g(y)$, and $g(x\cdot y)=f(x\cdot y)\cdot c+(x\cdot y)\cdot(-c)=[f(x)\cdot c+x\cdot (-c)][f(y)\cdot c+y\cdot (-c)]$ using distributivity and $c\cdot(-c)=0$. $g$ is one-to-one, as $f$ is one-to-one and for all $x,y,w,z\in A$, $x\cdot c+y\cdot(-c)=w\cdot c+z\cdot(-c)$ iff $x=w$ and $y=z$. We have that $d\cdot c=d\cdot c_1$ for $d\leq b$ follows from $\sigma$-distributivity and $d\cdot(a_0-b_0)=0$; $\sigma$-complete Boolean algebras are always $\sigma$-distributive. Now let us check $g$ is onto $A\upharpoonright b$. Let $d\leq b$. We have $d\cdot c=d\cdot c_1$, but as $c_1\leq a$ and $f$ is onto $A\upharpoonright a$, there is $d'\in A$ with $f(d')=d\cdot c_1$, but $c_1=f(c)$, hence $d'\leq c$, in consequence $g(d')=f(d')\cdot c+d'\cdot(-c)=f(d')\cdot c=d\cdot c_1=d\cdot c$. Also $d\cdot(-c)\leq-c$, in consequence $f(d\cdot(-c))\leq f(-c)=-c_1$, thus $f(d\cdot(-c))\cdot c_1=0$, and we get $g(d\cdot(-c))=f(d\cdot(-c))\cdot c+d\cdot(-c)=f(d\cdot(-c))\cdot c_1+d\cdot(-c)=d\cdot(-c)$, thus $f(d'+d\cdot(-c))=d\cdot c+d\cdot(-c)=d$. Therefore $g$ is onto $A\upharpoonright b$.

A: Let $f: A \to B \restriction b$ and $g: B \to A \restriction a$ be isomorphisms, and assume $0 < a < 1, 0 < b < 1$. It suffices to show that $A \simeq A\restriction a \simeq B$.
Define sequences of elements in $A$, $a_n, b_n, n \in N$: $a_0 = 1, b_0 = g(1)$, $a_{n+1} = g(f(a_n))$, $b_{n+1} = g(f(b_n))$, $\forall n \in N$. In particular, $a_0 = 1 > b_0 = a > a_1 = g(b) > b_1 = g(f(a))$. Notice that $g \circ f$ is an isomorphism, $A \restriction a_i \simeq_{g \circ f} A\restriction a_{i+1}$, $\forall i$.
Moreover, $\forall n, a_{n+1} < b_n < a_n$, by injectivity of $f$ and $g$.
Now let $a^* = \Pi_{n \in N}a_n = \Pi_{n\in N}b_n$, which exists because of $\sigma$-completeness of A and B. $\forall x \leq a^*$, $(g \circ f)(x) = x$ follows from the definition of $\Pi$.
We will define an isomorphism $h: A \to A \restriction a$, which for any $x \in A$ sends the part of $x$ that is $\leq a^*$ to itself, the part of $x$ that is $\leq a_i - b_i$ for some $i \in N$ to $g(f(x))$ and the part of $x$ that is $\leq b_i - a_{i+1}$ again to itself.
Let $a_A = \Sigma_{n} (a_n - b_n)$, $a_B = \Sigma_{n} (b_n - a_{n+1})$, both of which exist by $\sigma$-completeness and $1 = a^* + a_A + a_B$ is a partition. Let $x \in A, x = x\cdot a^* + x \cdot a_A + x \cdot a_B = x^* + x_A + x_B$, with $x^* \leq a^*, x_A \leq a_A, x_B \leq a_B$ and $x^* \cdot x_A = x_A \cdot x_B = x^* \cdot x_B = 0$. Define $h: A \to A \restriction a$ by $h(x) = x^* + x_B + g(f(x_A))$.
Notice that $h(1) = a^* + a_B + g(f(a_A)) = a^* + \Sigma_{n} (b_n - a_{n+1}) + \Sigma_{n \geq 1} (a_n - b_n) = a$, and $h(0) = 0$.
It follows that $h$ is a Boolean algebra homomorphism: $h(x) + h(y)$ = $x^* + x_B + g(f(x_A))$ $+$ $y^* + y_B$ $+$ $g(f(y_A))$ $=$ $(x^* + y^*) + (x_B + y_B)$ $+$ $(g(f(x_A))$ $+$ $g(f(y_A)))$ $=$ $(x^* + y^*)$ $+$ $(x_B + y_B)$ $+$ $g(f(x_A +y_A))$ $=$ $h(x + y)$. Similarly for $h(x \cdot y)$ by using the fact that $(x^* + x_A + x_B)$ $\cdot$ $(y^* + y_A + y_B)$ $=$ $x^* \cdot y^* + x_A \cdot y_A + x_B \cdot y_B$ because all other terms are $=0$. Finally $h(\lnot x)$ $=$ $h(1-(x^* + x_B + x_A))$ $=$ $h((a^* - x^*) + (a_B - x_B) + (a_A - x_A))$ $=$ $(a^* - x^*)$ $+$ $(a_B - x_B)$ $+$ $(g(f(a_A)) - g(f(x_A)))$ $=$ $h(1) - h(x) = \lnot h(x)$.
It is immediate that $h$ is injective: if $x^* + x_B + g(f(x_A))$ $=$ $y^* + y_B + g(f(y_A))$ then $x^* = y^*$, $x_B$ $=$ $y_B$, and $g(f(x_A)) = g(f(y_A)) \implies x_A = y_A$.
Finally, $h$ is onto: let $x \in A \restriction a$ i.e., $x \leq a$. Let $x = x^* + x_A + x_B$. Because $x \leq a$, it follows that $x_A \leq g(b)$: anything $\leq 1-a$ cannot be part of $x$. Therefore, $(g \cdot f)^{-1}$ is defined for $x_A$, and we can find $z = x^* + x_B + (g \cdot f)^{-1}(x_A)$ with $h(z) = x$.
