assertFalse( kb.isType( a, not( self( q ) ) ) );
}
@Test
public void testReflexive1() {
KnowledgeBase kb = new KnowledgeBase();
ATermAppl c = term( "c" );
ATermAppl d = term( "d" );
ATermAppl sub = term( "sub" );
ATermAppl sup = term( "sup" );
ATermAppl p = term( "p" );
ATermAppl r = term( "r" );
ATermAppl weakR = term( "weakR" );
ATermAppl x = term( "x" );
ATermAppl y = term( "y" );
kb.addClass( c );
kb.addClass( d );
kb.addClass( sub );
kb.addClass( sup );
kb.addSubClass( sub, sup );
kb.addSubClass( some( weakR, TOP ), self( weakR ) );
kb.addObjectProperty( p );
kb.addObjectProperty( r );
kb.addObjectProperty( weakR );
kb.addReflexiveProperty( r );
kb.addRange( r, d );
kb.addIndividual( x );
kb.addType( x, self( p ) );
kb.addType( x, not( some( weakR, value( x ) ) ) );
kb.addIndividual( y );
kb.addPropertyValue( weakR, y, x );
assertTrue( kb.isConsistent() );
assertTrue( kb.isSubClassOf( and( c, self( p ) ), some( p, c ) ) );
assertTrue( kb.isSubClassOf( and( c, min( r, 1, not( c ) ) ), min( r, 2, TOP ) ) );
assertTrue( kb.isSubClassOf( min( r, 1, c ), d ) );
assertTrue( kb.hasPropertyValue( x, p, x ) );
assertTrue( kb.hasPropertyValue( y, weakR, y ) );
assertTrue( kb.isDifferentFrom( x, y ) );
assertTrue( kb.isDifferentFrom( y, x ) );
assertTrue( kb.isType( x, some( r, value( x ) ) ) );
assertTrue( kb.isSatisfiable( and( self( p ), self( inv( p ) ), max( p, 1, TOP ) ) ) );
}