Solution

Door 1 - lady 

Door 2 - tiger


Xpress-Mosel Model
model 'trial5'

! Description  : The Fifth Trial
! Source       : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press
! Date written : Xpress-MP 9/12/99, Mosel
! 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 door i hides prize i then statement i is true else false
  forall(i in D)
    lca(i):= x(i,i) = t(i)

  ! if statement on door 1 is true (i.e. x(1,1)+x(2,1)>=2) then set t(1) = 1, else t(1) = 0
  lcb1:= x(1,1)+x(2,1)-t(1) <= 0 
  lcb2:= 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
  lcc:= x(1,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