let get_unification (name : string) (state : string) (m1 : string) (name2 : string) (state2 : string) (m2 : string) : (int * (string * string * string * string) list) =
          let (exist_match,sub) = get_match_message_story name state m1 name2 state2 m2 (!untyped_variable) in
        if(exist_match<>(-1))
        then (exist_match,sub)
        else ( 
                let res = match_message name state m1 name2 state2 m2 in
                if(res)
                then
                        get_match_message_story name state m1 name2 state2 m2 (!untyped_variable)
                )
                else (0,[])
        )