(part-type 'nmos-amplifier
	   '()
	   '(gain)
	   '((any-model
	      (vdd gnd in d g b)
	      ((power      dc-voltage-source       vdd gnd)
	       (sigin      voltage-signal-source   in  b)
	       (gate-bias  dc-voltage-source       b   gnd)
	       (rin        resistor                in  g)
	       (q          nmos-fet                d   g   gnd)
	       (rd         resistor                vdd d)
	       (sigout     open-circuit            d   gnd))
	      ()
	      ((ground (= (>> potential gnd) 0))
	       (k-typical (= (>> k q) 0.002))
	       (VT-typical (= (>> VT q) (dimensioned 1 volts))))))
	   '((gain-definition
	      (= (>> gain)
		 (/ (>> voltage sigout incremental)
		    (>> voltage sigin incremental)))
	      (incremental))))

(define a (create-circuit 'N 'nmos-amplifier '(bias incremental)))

(assume-value a '(strength power) 15)

(assume-value a '(strength gate-bias) 3)
	   
(assume-value a '(resistance rd) 1000)

(assume-value a '(resistance rin) 10000)

(propagate (constraint-network a))

(node-assume! (referent a '(amplifying operation q bias)))

(propagate (constraint-network a))

(assume-value a '(strength sigin) .001)
	       
(propagate (constraint-network a))

(the-value a '(voltage sigout incremental))
; ((voltage sigout incremental) = -.004)
;   (set by (-rhs:kvl sigout incremental))
;     (because ((potential d incremental) (potential gnd incremental)))

(the-value a '(voltage sigout bias))
; ((voltage sigout bias) = 11.)
;   (set by (-rhs:kvl sigout bias))
;     (because ((potential d bias) (potential gnd bias)))

