1
2
3
4
5
6
7
8
9
10
11
12
|
#ifndef EMPATHY_SEMA_UNIFY_H
#define EMPATHY_SEMA_UNIFY_H
namespace empathy::sema
{
using UniGen = Generator< pair< Term, UnificationContext > >;
UniGen Unify( const Term& lhs, const Term& rhs, UnificationContext& context );
UniGen HalfUnify( const Term& lhs, UnificationContext& context );
}
#endif
|
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#ifndef EMPATHY_SEMA_UNIFY_H
#define EMPATHY_SEMA_UNIFY_H
namespace empathy::sema
{
using UniGen = Generator< pair< Term, UnificationContext > >;
// Perform one unification pass, or two if holes need to be substituted.
UniGen FullUnify( const Term& lhs, const Term& rhs, UnificationContext& context );
// If substitution is needed, perform substitution on lhs and rhs and then
// perform a second unification pass.
UniGen UnifyPass2( const Term& lhs, const Term& rhs, const Term& s, UnificationContext& ucPass1 );
// Perform one unification pass
UniGen Unify( const Term& lhs, const Term& rhs, UnificationContext& context );
UniGen HalfUnify( const Term& lhs, UnificationContext& context );
}
#endif
|