Solution

Door 1 - tiger 

Door 2 - lady


Xpress-Mosel Model
model 'trial2'

! Description  : The Second Trial
! Source       : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press
! Date written : Xpress-MP 6/12/99, Mosel 19/4/03
! Written by   : M J Chlond 

  uses 'mmxprs'
  
  parameters
    door  = 2
    prize = 2		! 1 = Lady, 2 = Tiger
  end-parameters

  declarations
    D = 1..door
    P = 1..prize
    x: array(D,P) of mpvar    ! x(i,j) = 1 if door i hides prize j, else 0
    t: array(D) of mpvar      ! t(i) = 1 if statement on door i is true, else 0
  end-declarations

  any:= x(1,1)

  ! each door hides 1 prize
  forall(i in D)
    pca(i):= sum(j in P) x(i,j) = 1

  ! if statement on door 1 is true then set t(1) = 1, else t(1) = 0
  lca1:= x(1,1)+x(2,1)-2*t(1) <= 0 
  lca2:= x(1,1)+x(2,1)-t(1) >= 0

  ! if statement on door 2 is true then set t(2) = 1, else t(2) = 0
  lcb1:= t(2) = x(1,2)

  ! either both statements true or both false
  lcc:= t(1) = t(2)

  forall(i in D,j in P)
    x(i,j) is_binary
  forall(i in D)
    t(i) is_binary
  
  minimise(any)

  forall(i in D) do
    forall(j in P)
      write(getsol(x(i,j)),' ')
    writeln
  end-do

  forall(i in D) do
    write(getsol(t(i)))
    writeln
  end-do
  
end-model