private void ruleR_forall_2()	{
			// A is the context
			// A \sub \some r.B
			// A \sub C
			// => r \sub is, \some s.C \sub D, (B \and D) in O
			// A \sub \some r.(B \and D)
	
			for(REXObjectPropertyExpressionImpl r:LHS.implications.keySet())
			{
				if(LHS.implications.get(r).contains(factory.top))
					for(REXObjectPropertyExpressionImpl is:r.getSuperRoles())
					{
						if(is.getInversePropertyExpression() != null)
						{
							REXObjectSomeValuesFromImpl somesC = factory.testREXObjectSomeValuesFrom(is.getInversePropertyExpression(), RHS);
							if(somesC != null)
							{
								for(REXClassExpressionImpl D:somesC.getOriginalSuperClasses())
									if(D != somesC)
										// ruleR_forall_*_2
										inferNewC_sub_r_D(LHS, r,D, true);
							}
						}
						for(REXClassExpressionImpl D:is.ranges)
							inferNewC_sub_r_D(LHS,r,D,true);
					}
			}
		}