It's pretty simple conditional program, really.
Where J is judgment function and P is perception function,
For reverse-engineering type from a dominant function:
Where 1, 2, 3, and 4 refer to dominant, auxiliary, tertiary, and inferior functions, and (a) and (b) refer to opposite functions (t/f, s/n),
If J, then:
if Ji, TYPE = IxJP.
else if Je, TYPE = ExJJ
Else if P:
if Pi, TYPE = IPxJ.
else if Pe, TYPE = EPxP.
For determining remaining functions from a dominant function:
And so on. It's all very yin-yang.
If 1 = J(a/b)(i/e), then:
4 = J(b/a)(e/i) and
[2, 3] = [P(a/b)(e/i), P(b/a)(i/e)].
Else if 1 = P(a/b)(i/e), then:
4 = P(b/a)(e/i) and
[2, 3] = [J(a/b)(e/i), J(b/a)(i/e)].