


var C, H, K, E, S;

parameters beta, iota, sigma_c, sigma_s, chi_s, eta_h, sigma_h, theta, delta, gamma, xi, rho, nsigma_h, nsigma_c, nsigma_s;

// PARAMETERS
chi_s=0.95;
iota=0.64;
beta=0.992; 
sigma_c=5.32; 
sigma_s=1.33; 
sigma_h=0.02; 
theta=0.33;
delta=0.0253; 
gamma=0.0; 
xi=0.8; 
rho=0.8; 
eta_h=0.97;

// abbreviations
nsigma_h=(sigma_h-1)/sigma_h;
nsigma_c=(sigma_c-1)/sigma_c; 
nsigma_s=(sigma_s-1)/sigma_s; 

model;

// FOC 1 - Intertemporal Euler equation
(C^(-1/sigma_c))*((iota*(C^nsigma_c)+(1-iota)*((chi_s*(S^nsigma_s)+(1-chi_s)*((1-H)^nsigma_s))^(nsigma_c/nsigma_s)))^(1/(sigma_c-1)))=beta*(1-delta+(eta_h*theta*((H/K)^(1-theta))*(((K^theta)*(H^(1-theta)))^(-1/sigma_h))*((eta_h*(((K^theta)*(H^(1-theta)))^nsigma_h)+(1-eta_h)*(E^nsigma_h))^(1/(sigma_h-1)))))*(C(+1)^(-1/sigma_c))*(((iota*(C(+1)^nsigma_c)+(1-iota)*((chi_s*(S(+1)^nsigma_s)+(1-chi_s)*((1-H(+1))^nsigma_s))^(nsigma_c/nsigma_s))))^(1/(sigma_c-1)));

// FOC 2 - Intratemporal Euler equation
(1/(iota*(C^(-1/sigma_c))))*((1-iota)*(1-chi_s)*((1-H)^(-1/sigma_s))*((chi_s*(S^nsigma_s)+(1-chi_s)*((1-H)^nsigma_s))^((sigma_c-sigma_s)/(sigma_c*sigma_s-sigma_c))))=eta_h*(1-theta)*(((K^theta)*(H^(1-theta)))^(-1/sigma_h))*((K/H)^theta)*((eta_h*(((K^theta)*(H^(1-theta)))^nsigma_h)+(1-eta_h)*(E^nsigma_h))^(1/(sigma_h-1)));

// FOC 3 - Intratemporal on environment and consumption
(1/(1+gamma))*(1/(iota*C^(-1/sigma_c)))*((1-iota)*chi_s*(S^(-1/sigma_s)))*(((chi_s*(S^nsigma_s)+(1-chi_s)*((1-H)^nsigma_s))^((sigma_c-sigma_s)/(sigma_c*sigma_s-sigma_c))))=(1/(xi+rho))*((eta_h*(((K^theta)*(H^(1-theta)))^nsigma_h)+(1-eta_h)*(E^nsigma_h))^(1/(sigma_h-1)))*(1-eta_h)*(E^(-1/sigma_h));

// Aggregate resource constraint
/* k' = (1-delta)*k + y - c */ 
K=(1-delta)*K(-1)+((eta_h*(((K^theta)*(H^(1-theta)))^nsigma_h)+(1-eta_h)*(E^nsigma_h))^nsigma_h)-C; 

// environment
S=S(-1)*(1+gamma)-E*(xi+rho);

end;

initval;
K=0.8;
C=0.8;
H=0.2;
E=0.1;
S=0.3;

end;

resid(1);

steady;
solve_algo=0;


