Forcing is a relative model construction method for models of $ZF$ as a particular first order theory using models of another first order theory (forcing companion) that in this case is the theory of partial orders ($PO$). 



> 
> Is it possible to develope forcing for other first order theories? In fact I am asking for possible relative model constructions of a first order theory without finite models like $T$ (instead of $ZF$) using models of a "forcing companion" theory like $S$ (instead of $PO$). This model construction method produces countable models of $T$ with special properties using a given model of $T$ and a given model of $S$.
> 
> 
> 


Obviously if we define a uniform "forcing companion theory" $S$ for an arbitrary first order theory $T$ then in many cases when countable models of $T$ are not too board up to isomorphism the "forcing theory of $T$" is just a trivial method and produces no interesting models of $T$. But in this question my focus is on first order theories with wild countable and countable models like $ZF$ and $PA$.


Every references in this frame work is welcome. 



Forcing for Arbitrary First Order Theories
One of the most robust ways to understand forcing is via the method of Boolean ultrapowers, and this is a purely model-theoretic construction that makes sense to undertake with any first-order theory whatsoever. One may form the Boolean ultrapower of any graph, group, ring, field, partial order, and indeed of any structure in any first-order language whatsoever. 


The general construction of the Boolean ultrapower has classical roots (due in set theory Vopenka, developed also by Solovay, Scott and others including a very nice presentation by Bell, but also as a purely model-theoretic construction by Mansfield and others), and a general introductory account can be found in my paper [Well-founded Boolean ultrapowers as large cardinal embeddings](http://jdh.hamkins.org/boolean-ultrapowers/), written jointly with Dan Seabold.


One may consider the general class of $\mathbb{B}$-valued models in a given first-order language. Specifically, a *$\mathbb{B}$-valued structure* in a first-order language (not necessarily set-theoretic) consists of a set of objects $M$, called *names*, and an assignment $[\![\tau=\sigma]\!]\in\mathbb{B}$ giving the Boolean value that any two names are equal, as well as the Boolean value $[\![R(\vec \sigma)]\!]\in\mathbb{B}$ that a given relation holds at a tuple of names, such that the laws of equality hold with respect to these assignments (and one can also handle function symbols and constants). The basic fact is that the concept of a Boolean-valued model is not particularly connected with set theory, and makes sense for models in any first-order language.


For any such $\mathbb{B}$-valued structure, whether it is group, ring, field, partial order or model of set theory, one may collapse it to a classial structure by taking the quotient by an arbitrary ultrafilter on $\mathbb{B}$. Specifically, if $U\subset\mathbb{B}$ is an ultrafilter (no need for any genericity), then one defines $\sigma=\_U\tau$ for names just in case $[\![\sigma=\tau]\!]\in U$. This is an equivalence relation, indeed a congruence, and one defines the structure on the resulting quotient structure $R([\sigma]\_U)$ just in case $[\![R(\sigma)]\!]\in U$, which is well-defined because the equality axioms had Boolean value one. In this way, any $\mathbb{B}$-valued structure is transformed into a classical $2$-valued structure by the quotient.


Thus, we have a generalization of the classical ultrapower construction from ultrapowers on a power set algebra to arbitrary ultrapowers on a complete Boolean algebra, and this is known as the Boolean ultrapower. Specifically, if you have a first-order structure $\cal M=\langle M,\ldots\rangle$ and a complete Boolean algebra $\mathbb{B}$, then consider the set of *spanning* functions $f:D\to M$, where $D$ is any open dense set in $\mathbb{B}$. Define $[\![R(f)]\!]=\bigvee\{b\in\mathbb{B}\mid R(f(b))\}$, and this produces a Boolean-valued model. If $U\subset\mathbb{B}$ is an ultrafilter in $\mathbb{B}$, define $f=\_Ug$ for two spanning functions $f:D\to M$, $g:E\to m$, if $\bigvee\{b\in\mathbb{B}\mid f(b)=g(b)\}\in U$, and let ${\cal M}^{\downarrow\mathbb{B}}/U$. This is an equivalence relation, and we may consider the set of spanning functions modulo this relation, denoted $M^{\downarrow\mathbb{B}}/U$. For any relation $R$ in the language, we define the interpretation of $R$ on this structure by $R([f]\_U)$ holds if and only if $\bigvee\{b\mid {\cal M}\models R(f(b))\}\in U$. One may similarly handle constants and functions as explained in the paper. If $U\subset\mathbb{B}$ is an ultrafilter, then the corresponding Boolean ultrapower map is the map $x\mapsto[c\_x]\_U$, where $c\_x$ is the constant map on $\mathbb{B}$ with value $x$. This is a generalization of the ordinary ultrapower construction from ultrafilters on power set algebras to ultafilters on arbitrary 
complete Boolean algebras. 


The connection with forcing is that for any complete Boolean algebra $\mathbb{B}$, we may construct the $\mathbb{B}$-valued model $V^{\mathbb{B}}$, whose objects are the $\mathbb{B}$-names with Boolean-valued truth defined in the usual forcing manner. If $U\subset\mathbb{B}$ is any ultrafilter (not necessarily generic in any sense), then one gets an elementary embedding $j:V\to \check V\_U\subset \check V\_U[[\dot G]\_U]\cong V^{\mathbb{B}}/U$, which is precisely the Boolean ultrapower map of $V$ into the ground model of the Boolean extension $V^{\mathbb{B}}/U$ quotiented by the ultrafilter $U$.


