-- Apply De Morgan's law --
package pkg

func fn() {
	var a, b, c bool
	var e, f, g int
	var h, i float64

	_ = !a || !b || !(!c || e > f) || g != f //@ diag(`could apply De Morgan's law`)
	_ = !(a && h > i)
}

-- Apply De Morgan's law recursively --
package pkg

func fn() {
	var a, b, c bool
	var e, f, g int
	var h, i float64

	_ = !a || !b || (c && e <= f) || g != f //@ diag(`could apply De Morgan's law`)
	_ = !(a && h > i)
}

-- Apply De Morgan's law recursively & simplify --
package pkg

func fn() {
	var a, b, c bool
	var e, f, g int
	var h, i float64

	_ = !a || !b || c && e <= f || g != f //@ diag(`could apply De Morgan's law`)
	_ = !(a && h > i)
}
